0、之所以需要泛型編程,是爲了能讓同樣的功能處理不同類型的數據,就是爲了突破類型限制複用代碼功能。
1、關於泛型編程有一個核心需要記住:類型參數化,也即類型是一種可變的參數。
2、泛型有三種使用方式:泛型類、泛型接口、泛型方法。
3、
// 泛型接口
public interface Map<K, V> {
}
// 泛型類
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable{
// 泛型方法
public <T> T[] toArray(T[] a) {
if (a.length < size)
// Make a new array of a's runtime type, but my contents:
return (T[]) Arrays.copyOf(elementData, size, a.getClass());
System.arraycopy(elementData, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
}
泛型代碼在編譯時類型參數會被去掉,編程一個普通的類型,泛型參數有上下界的用上下界類型替換,沒有的用Object替換。