2

继上一篇文章之后,我希望有人可以帮助澄清/确认我对以下 java 泛型语句的理解,并就最后一个语句的含义提供一些输入:

如果:

Class<abc> className = x

意味着将x类型分配abcClass变量className

和:

Class<? extends IAbc> className = x

表示分配x哪个实现IAbc变量Class的接口className

有什么作用:

Class<? extends IAbc<?>> className = x

意思是?

4

1 回答 1

5

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

更有趣的是

Class<? extends IAbc<? extends Number>>

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

于 2012-11-01T16:01:35.250 回答