Tengo curiosidad por entender por qué testInnerClass no se puede compilar, citando tipos incompatibles: el objeto no se puede convertir a String. prueba de paquete; import java.util.List; clase Prueba

5
Jota 14 mar. 2021 a las 18:19

1 respuesta

La mejor respuesta

InnerClass es una clase interna de Test que espera parámetros genéricos. Entonces necesitas actualizar la declaración de clase como:

class Test<
        I extends Test<I,S,O>.InnerClass,
        S extends Test.StaticInnerClass,
        O extends OtherClass>

El StaticInnerClass, aunque dentro de Test, se declara static. Entonces, como cada método o variable static, la clase static tampoco depende de ningún estado de la clase. Por lo tanto, no es necesario tener S extends Test<I,S,O>.StaticInnerClass

3
Gautham M 14 mar. 2021 a las 16:36