je le code de test suivant:Impossible de compiler une classe qui implémente une interface sans paramètre de type
public interface Container<I> {
public void addClass(Class<?> clazz);
}
public class MyContainer implements Container {
public void addClass(Class<?> clazz) {}
}
et je reçois l'erreur suivante lorsque vous essayez de compiler ces deux classes:
MyContainer. java: 1: MyContainer n'est pas abstraite et ne remplace pas la méthode abstraite addClass (java.lang.Class) dans le conteneur
Si j'ajoute un type à l'interfac conteneur e dans MyContainer (comme <Object>
), je ne reçois pas l'erreur. Le problème est que j'introduis le paramètre type à Container, qui fait partie de l'API publique, donc pour la compatibilité, je ne peux pas avoir toutes les classes d'implémentation incapables de compiler.
Vous avez des idées? Est-ce un problème d'effacement de type? Y at-il un travail autour?
@ élaboration Skeet- serait helpful..TIA – hakish
que je vois, je vous remercie Jon. Accepté. –