在Java中,泛型是非常常見和重要的特性。而了解泛型中的通配符和類型變量的區別,可以幫助我們更好地理解泛型,獲得更好的編程體驗。
通配符,即“?”符號,它表示一種未知的類型。在定義泛型類或方法時,可以使用通配符作為類型形參,這樣就可以接受任何類型的實參。
public class Example{ public void method1(List<? extends T> list) {} public void method2(List<? super T> list) {} }
在上面的例子中,method1()中的通配符“? extends T”,表示可以接受T的子類或T本身。而method2()中的通配符“? super T”,表示可以接受T的父類或T本身。
而類型變量,即“T”符號,它表示一種已知的類型。在定義泛型類或方法時,可以使用類型變量作為類型形參,這樣就可以在類或方法中使用這個類型變量,代表一個具體的類型。
public class Example<T> { private T data; public T getData() { return data; } public void setData(T data) { this.data = data; } }
在上面的例子中,類型變量“T”代表一個具體的類型,在類中可以使用它定義屬性和方法。
總的來說,通配符表示的是一種未知的類型,而類型變量表示的是一種已知的類型。通配符用于定義泛型類或方法的形參,能接受任何類型的實參;而類型變量用于聲明泛型類或方法中的屬性和方法,代表一個具體的類型。
上一篇php model條件
下一篇oracle 最大行