Java是一種面向?qū)ο缶幊陶Z言,其中泛型是一項十分有用的技術(shù)。泛型允許我們在編寫代碼時更加類型安全和簡潔。
public class MyList<E> { private E[] data; private int size; public MyList(int capacity) { data = (E[])new Object[capacity]; size = 0; } public void add(E e) { data[size] = e; size++; } public E get(int index) { return data[index]; } public int size() { return size; } }
在上面的代碼中,我們定義了一個類MyList,它具有泛型類型參數(shù)E。這意味著我們可以在創(chuàng)建MyList對象時指定想要的元素類型。例如,創(chuàng)建一個只接受String類型元素的MyList對象:
MyList<String> list = new MyList<>(10);
由于使用了泛型,我們可以在編譯時捕獲一些錯誤。例如,如果我們嘗試將一個Integer類型的元素添加到上面的MyList中:
list.add(5);
編譯器會提示我們這樣的一個錯誤:
incompatible types: int cannot be converted to java.lang.String
這表明我們的代碼試圖添加一個整數(shù)作為字符串處理,這是不合法的。
泛型還可以幫助我們編寫更簡潔的代碼。例如,在Java中常用的ForEach循環(huán)可以與泛型類型一起使用:
for (String s : list) { System.out.println(s); }
在這種情況下,我們不需要顯式地指定MyList的元素類型,因為編譯器可以從上下文中推斷出類型。
綜上所述,泛型是一個強大且有用的Java技術(shù),可以提高代碼的可讀性、可維護性和安全性。