T 代表一種類型。
加在類上:
class SuperClass<A>{}
加在方法上:
public <T>void fromArrayToCollection(T[] a, Collection<T> c){}
(免費(fèi)學(xué)習(xí)視頻教程分享:java視頻教程)
方法上的<T>代表括號(hào)里面要用到泛型參數(shù),若類中傳了泛型,此處可以不傳,調(diào)用類型上面的泛型參數(shù),前提是方法中使用的泛型與類中傳來(lái)的泛型一致。
class People<T>{ public void show(T a) { } }
T extends T2 指?jìng)鞯膮?shù)為T(mén)2或者T2的子類型。
?是通配符,泛指所有類型。
一般用于定義一個(gè)引用變量,這么做的好處是,如下所示,定義一個(gè)sup的引用變量,就可以指向多個(gè)對(duì)象。
SuperClass<?> sup = new SuperClass<String>("lisi"); sup = new SuperClass<People>(new People()); sup = new SuperClass<Animal>(new Animal());
若不用?,用固定的類型的話,則:
SuperClass<String> sup1 = new SuperClass<String>("lisi"); SuperClass<People> sup2 = new SuperClass<People>("lisi"); SuperClass<Animal> sup3 = new SuperClass<Animal>("lisi");
這就是?通配符的好處。
相關(guān)文章教程推薦:java入門(mén)教程