Java泛型,是指把特定的類或方法,聲明成可支持多種數據類型的通用程序設計方式。其中,泛型類是定義了一個類型,可以在實例化時指定為任意類型;泛型方法是定義在泛型類中的方法,可以接受任何類型的參數,并且可以返回任何類型的值。
Java泛型有以下幾種使用方式:
// 泛型類,T為不確定的類型 public class MyClass<T> { private T data; public void setData(T data) { this.data = data; } public T getData() { return data; } } // 泛型方法 public <T> T myMethod(T t) { return t; } // 通配符 List<? extends Number> list1; // 只能接受Number及其子類類型的泛型參數 List<? super Integer> list2; // 只能接受Integer及其父類類型的泛型參數
Java泛型的繼承關系,是指當一個類或接口繼承自另一個含有泛型的類或接口時,需要指定該類或接口的類型參數。
// 父類 public class Animal<T> { T animalType; public T getAnimalType() { return animalType; } } // 子類 public class Dog<T> extends Animal<T> { public void bark() { System.out.println("汪汪汪!"); } }
在上面的例子中,我們定義了父類Animal<T>,其中T為不確定的類型,子類Dog<T>繼承了父類,并重新定義了一個無參數方法bark()。由于子類繼承了父類的泛型類型參數T,所以實例化子類時必須為T指定一個類型。
綜上所述,Java泛型是一種通用的程序設計方式,能夠充分重用代碼;同時,在規范繼承關系時需要注意泛型類型參數的聲明。掌握好Java泛型,可以為我們的Java程序設計帶來很大的便利性。