Quiero usar una clase genérica dentro de una interfaz estática anidada. Mi objetivo es hacer algo como esto:Genéricos de Java con clase e interfaz estática anidada
public class MyClass<T>{
private MyInterface task;
public static interface MyInterface{
void aMethod (T item);
}
}
pero me sale el error: No se puede hacer una referencia estática a la T. tipo no estático Si hago algunos cambios (por debajo) Puedo usar un tipo genérico en el interior una interfaz, pero quiero evitar este método porque es redundante escribir la misma clase 2 veces: una para MyClass y otra para MyInterface.
public class MyClass<T>{
private MyInterface<T> task;
public static interface MyInterface<T>{
void aMethod (T item);
}
}
Thanks.
EDITAR: Quiero hacer esto:
MyClass c = new MyClass<String>();
c.setInterface (new MyClass.MyInterface(){
@Override
public void aMethod (String s){
...
}
);
o
MyClass c = new MyClass<AnotherClass>();
c.setInterface (new MyClass.MyInterface(){
@Override
public void aMethod (AnotherClass s){
...
}
);
Entonces, ¿qué preguntas ¿de nuevo? –
Quiero usar la clase genérica T especificada en MyClass en un método de una interfaz estática anidada. –
Su clase anidada puede no ser genérica y podría tener varios tipos genéricos. La única manera de dejar esto claro es enumerar todos los tipos –