, но это на самом деле то, что он возвращает.

даю, что с точки зрения времени компиляции, а также с точки зрения времени выполнения, это не будет проблемой для.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>
  }

}

РЕДАКТИРОВАТЬ: Не работает сClass<T> а такжеClass<? super T> или.

Ответы на вопрос(4)

Ваш ответ на вопрос