进一步previous post我希望有人可以帮助澄清/确认我对以下java泛型语句的理解,并提供一些输入,以确定最终的含义:
如果:
Class<abc> className = x
表示将x
类型abc
分配给Class
变量className
并且:
Class<? extends IAbc> className = x
表示将实现接口x
的{{1}}分配给IAbc
变量Class
做什么:
className
意思?
答案 0 :(得分:5)
这只是意味着IAbc
本身就是一个通用类型IAbc<T>
,你要求一个Class
对象代表IAbc
的某些参数化的一些实现但是你不要不知道(或关心?)哪个。
更有趣的是像
Class<? extends IAbc<? extends Number>>
将接受任何实现IAbc<Number>
,IAbc<Integer>
,IAbc<Double>
等的类。