Genéricos de Java: ¿por qué someObject.getClass () no devuelve Class <? extiende T>?

Esperaría que desde el punto de vista del tiempo de compilación, así como desde el punto de vista del tiempo de ejecución, no fuera un problema para.getClass() para proporcionar un valor de retorno escrito correctamente.

Pero debo estar equivocado.

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>
  }

}

EDITAR: No funciona conClass<T> yClass<? super T> ya sea.

Respuestas a la pregunta(4)

Su respuesta a la pregunta