4
Class<? super T>  getSuperclass()

Class 类中的 getSuperclass() 返回一个类型为<? super T>,也就是说Super的Class的类型参数可以是T或者它的任何一个Superclass,那么SuperClass的Class类型参数怎么会和子类的类型相同呢?

例如

Class<Manage>.class.getSuperclass() 

不返回

Class<Manager> 

在所有..就像从来没有

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

4

2 回答 2

7

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

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

对于它的价值,你可以保证你得到的类将是有问题的超类——不管它的类型绑定是什么。

于 2012-12-20T22:44:24.013 回答
5

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

于 2012-12-20T22:44:32.700 回答