Java Generics:什么<! - ?扩展接口<? - >&gt;意思?

时间:2012-11-01 15:59:45

标签: java generics

进一步previous post我希望有人可以帮助澄清/确认我对以下java泛型语句的理解,并提供一些输入,以确定最终的含义:

如果:

Class<abc> className = x

表示将x类型abc分配给Class变量className

并且:

Class<? extends IAbc> className = x

表示将实现接口x的{​​{1}}分配给IAbc变量Class

做什么:

className

意思?

1 个答案:

答案 0 :(得分:5)

这只是意味着IAbc本身就是一个通用类型IAbc<T>,你要求一个Class对象代表IAbc的某些参数化的一些实现但是你不要不知道(或关心?)哪个。

更有趣的是像

Class<? extends IAbc<? extends Number>>

将接受任何实现IAbc<Number>IAbc<Integer>IAbc<Double>等的类。