相关疑难解决方法(0)

Java泛型:为什么someObject.getClass()不返回Class <?延伸T>?

我希望从编译时间以及运行时方面来看.getClass(),提供正确类型的返回值不是问题.

但我一定是错的.

public class _GetClassGenerics2 {

  static class MyClass {
  }

  public static void main(String[] args) {
    MyClass myInstance = new MyClass();
    // here it works
    Class<? extends MyClass> type = myInstance.getClass();

    myMethod(myInstance);
  }

  public static <T extends MyClass> void myMethod(T instance) {
    Class<? extends T> type = instance.getClass();
// java.lang.RuntimeException: Uncompilable source code - incompatible types
//  required: java.lang.Class<? extends T>
//  found:    java.lang.Class<capture#1 of ? extends _GetClassGenerics2.MyClass>
  }

}
Run Code Online (Sandbox Code Playgroud)

编辑:它不工作Class<T>,并Class<? super T> …

java generics types class type-safety

12
推荐指数
2
解决办法
8221
查看次数

标签 统计

class ×1

generics ×1

java ×1

type-safety ×1

types ×1