tengo el siguiente código de prueba:no puede compilar una clase que implementa una interfaz sin parámetro de tipo
public interface Container<I> {
public void addClass(Class<?> clazz);
}
public class MyContainer implements Container {
public void addClass(Class<?> clazz) {}
}
y me sale el siguiente error al intentar compilar estas dos clases:
MyContainer. java: 1: MyContainer no es abstracto y no anula el método abstracto addClass (java.lang.Class) en el contenedor
Si agrego un tipo a la interfaz del contenedor e en MyContainer (como <Object>
), no obtengo el error.
El problema es que estoy introduciendo el parámetro de tipo a Container, que es parte de la API pública, por lo que para compatibilidad, no puedo tener todas las clases de implementación imposibles de compilar.
¿Alguien tiene alguna idea? ¿Es un problema de borrado de tipo? ¿Hay alguna solución?
@ elaboración Skeet- sería helpful..TIA – hakish
veo, gracias Jon. Aceptado. –