天天看點

【軟體構造】關于泛型

關于泛型的好處:提高 Java 程式的類型安全;消除源代碼中的許多強制類型轉換。

執行個體化泛型類的時候指明泛型的具體類型

定義如下(lab2 p1)

public interface Graph<L> {
    
    public static <L> Graph<L> empty() {
    	Graph<L> graph = new ConcreteEdgesGraph<>();
    	return graph; 
    }
    
    public boolean add(L vertex);
    
    public int set(L source, L target, int weight);
   
    public boolean remove(L vertex);
    
}
           

泛型的類型參數隻能是類類型(包括自定義類),不能是簡單類型。

同一種泛型可以對應多個版本(因為參數類型是不确定的),不同版本的泛型類執行個體是不相容的。

泛型的類型參數可以有多個。

泛型的參數類型可以使用extends語句,例如<T extends superclass>。習慣上成為“有界類型”。

泛型的參數類型還可以是通配符類型。例如Class<?> classType = Class.forName(Java.lang.String);

泛型在編譯時會有類型擦除現象。

泛型類可以定義多個類型變量。

java禁止List中具有泛型傳回類型的方法,如get()

繼續閱讀