Rumah > Java > Javabermula > java泛型中T和?的区别

java泛型中T和?的区别

王林
Lepaskan: 2020-01-15 16:28:17
asal
5948 orang telah melayarinya

java泛型中T和?的区别

T 代表一种类型。

加在类上:

class SuperClass<A>{}
Salin selepas log masuk

加在方法上:

public <T>void fromArrayToCollection(T[] a, Collection<T> c){}
Salin selepas log masuk

(免费学习视频教程分享:java视频教程

方法上的代表括号里面要用到泛型参数,若类中传了泛型,此处可以不传,调用类型上面的泛型参数,前提是方法中使用的泛型与类中传来的泛型一致。

class People<T>{
public void show(T a) {
   }
}
Salin selepas log masuk

T extends T2 指传的参数为T2或者T2的子类型。

?是通配符,泛指所有类型。

一般用于定义一个引用变量,这么做的好处是,如下所示,定义一个sup的引用变量,就可以指向多个对象。

SuperClass<?> sup = new SuperClass<String>("lisi");
sup = new SuperClass<People>(new People());
sup = new SuperClass<Animal>(new Animal());
Salin selepas log masuk

若不用?,用固定的类型的话,则:

SuperClass<String> sup1 = new SuperClass<String>("lisi");
SuperClass<People> sup2 = new SuperClass<People>("lisi");
SuperClass<Animal> sup3 = new SuperClass<Animal>("lisi");
Salin selepas log masuk

这就是?通配符的好处。

相关文章教程推荐:java入门教程

Atas ialah kandungan terperinci java泛型中T和?的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan