类<! - super T - > in getSuperclass()有意义吗?

时间:2012-12-20 22:36:13

标签: java generics wildcard type-parameter bounded-wildcard

Class<? super T>  getSuperclass()

Class类中的getSuperclass()返回一个类型为&lt ;?的Class super T&gt;,这意味着Super的Class的类型参数可以是T或它的任何超类,现在为什么SuperClass的Class类型参数与子类的类型相同?

例如

Class<Manage>.class.getSuperclass() 

不会返回

Class<Manager> 

总之..从不

这有意义吗?或者我在这里遗失了什么?

2 个答案:

答案 0 :(得分:7)

界限只是过于宽泛,因为它与您使用Java的泛型表达一样接近。

你真正想要的是<the immediate superclass of T>;但是在Java的泛型中没有办法写出来。也没办法写<? super T excluding T><? super T>就像Java的泛型工作方式一样具体。

对于它的价值,您可以保证您获得的课程将成为有问题的超类 - 无论其类型是什么。

答案 1 :(得分:5)

Java泛型无法指定“某些超类但类本身”。因此,提供的界限是您可以指定的最佳界限。