tengo las siguientes clases abstractas:genéricos de Java y la herencia
public abstract class AbSuperClass1<K,S> {
//class definition
}
y:
public abstract class AbSuperClass2<K,S> {
public abstract <Q extends AbSuperClass1<K,S>> void method(Q arg);
...
}
Entonces tengo dos implementaciones concretas
public class Concrete1 extends AbSuperClass<String, String>{
//class definition
}
y:
public class Concrete2 extends AbSuperClass2<String, String>{
public void method(Concrete1 arg){
//method definition
}
}
Sin embargo, esto no compilará, ya que Concrete1 no se reconoce como un tipo válido para el argumento de método en Concrete2, pero por lo que puedo ver Concrete1 es del tipo correcto, ya que amplía AbSuperClass1.
¿Dónde me estoy equivocando?
Si es posible, sugiero usar Eclipse como entorno para escribir su código Java. Eclipse le habría mostrado exactamente lo que estaba mal y proporcionó un menú desplegable para que agregue la función que falta con un clic del mouse. Este tipo de capacidad puede acelerar significativamente su curva de aprendizaje y el tiempo de desarrollo. –
'public abstract