Java編程語言中,泛型和通配符是兩種不同的概念。泛型是指用以編寫通用代碼的一種類或方法,這些代碼可以適應多個不同的類型。通配符則是一種用于限定泛型類型參數的符號。
泛型的基本語法如下:
class ClassName<T> {
// 在類體中可以使用 T 作為類型參數
T someMethod(T parameter) {
// someMethod可以接受不同類型的參數,但必須與泛型類的類型參數相同
return parameter;
}
}
通配符示例如下:
public void method(List<? extends Number> list) {
// 使用通配符限制list可以接受的泛型參數
}
需要注意的是,泛型的類型參數是在實例化時被確定的,而通配符則可以接受不同的泛型類型參數。
在使用泛型時,我們通常會通過類型參數來實例化一個泛型類或方法,如:
ClassName<Integer> obj = new ClassName<>();
Integer result = obj.someMethod(42);
而在使用通配符時,則需要使用限定符,例如上述示例中的“? extends Number”。
總的來說,泛型和通配符都是用來提高Java程序的通用性、重用性和可維護性的工具。盡管它們都涉及類型參數,但它們的作用和用法是不同的。