Considérez les deux fichiers Java suivants qui contiennent une version simplifiée de mon problèmeinterface Java « Alias »
#a.java
package a;
public interface I {
//...
}
#b.java
package b;
public interface I {
//... (different stuff from a.I)
}
Vous remarquerez dans mon projet, il y a deux interfaces nommées « I ». Cela ne peut pas être changé. Je suis dans une situation où j'ai besoin d'utiliser les deux types à l'intérieur d'une même classe. Maintenant, bien sûr, je pourrais juste référencer chacun de leurs types comme un.I et b.I, mais j'essaie de l'éviter pour rien d'autre que de maintenir la lisibilité.
Je veux faire quelque chose comme ça
interface B extends b.I {
}
Cela pourrait me laisser utiliser l'interface I en utilisant B et, et a.i comme juste je en important. Le problème est que cela ne fonctionne pas, prenons cet exemple concret en utilisant
interface MyList extends List<String> {
}
MyList l = new ArrayList<String>();
Cela génère une erreur de type. Pourquoi Java ne "sait" pas que MyList étend List?
Aussi, j'ai essayé coulée dans l'exemple ci-dessus, mais il génère un ClassCastException
pensées?