【问题标题】:Class<? super T> in getSuperclass() Does it make sense?类<? super T> in getSuperclass() 有意义吗?
【发布时间】:2012-12-20 22:36:13
【问题描述】:
Class<? super T>  getSuperclass()

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

例如

Class<Manage>.class.getSuperclass() 

不返回

Class<Manager> 

完全没有..从来没有

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-15
        • 1970-01-01
        • 2011-01-05
        • 2016-01-12
        • 2023-03-17
        相关资源
        最近更新 更多