1.1 簡單的泛型類和接口
當指定一個泛型類時,類的聲明包含一個或多個類型參數,這些參數被放在類名後面的一對尖括號裏。用戶可以創建像V<String>和V<Integer>這樣的類型,但是8種基本類型卻不可以,比如V<int>是錯誤的。
public class v<AnyType> {
private AnyType storedValue;
public AnyType read(){
return storedValue;
}
public void set(AnyType x){
storedValue = x;
}
}
泛型接口。
在JAVA5 以後,Comparable接口是泛型的,代碼如下所示。
import java.lang.*;
public class v<AnyType> {
public interface Comparable<AnyType>
{
public int compareTo(AnyType other);
}
}
1.2 自動裝箱/拆箱
在泛型種基本類型的放入是不可以的,但是Java5以後提供了自動裝箱和拆箱,比如int型量被傳遞到一個需要Integer對象的地方,編譯器會在幕後插入一個隊Integer構造方法的調用,這就是自動裝箱,相反的,Integer對象被放到需要int類型的地方時會自動插入一個intValue方法的調用。這叫做自動拆箱。
package first;
public class boxing {
public static void main(String args[]){
v<Integer> m = new v<>();//此處還是需要標明是Integer類型。
m.set(37); //此處自動裝箱。
int val = m.read();
System.out.println("value is: " + val);
}
}