sky*_*ar7 4 java generics wildcard type-parameter bounded-wildcard
Class<? super T> getSuperclass()
Run Code Online (Sandbox Code Playgroud)
Class类中的getSuperclass()返回一个类型为<?的Class.super T>,这意味着Super的Class类型参数可以是T或它的任何超类,现在为什么SuperClass的Class类型参数与子类的类型相同?
例如
Class<Manage>.class.getSuperclass()
Run Code Online (Sandbox Code Playgroud)
不回来
Class<Manager>
Run Code Online (Sandbox Code Playgroud)
从来没有
这有意义吗?或者我在这里遗失了什么?
绑定只是过于宽泛,因为它与您使用Java的泛型表达一样接近.
你真正想要的是<the immediate superclass of T>
; 但是在Java的泛型中没有办法写出来.也没办法写<? super T excluding T>
.<? super T>
就像Java的泛型工作方式一样,你可以获得特定的信息.
对于它的价值,你可以保证你得到的类将成为有问题的超类 - 无论它的类型是什么.