Examiner le code suivantComment les classes génériques multi-imbriquées peuvent-elles se référer les unes aux autres?
public abstract class ClassA<ClassBType extends ClassB<ClassCType>,ClassCType extends ClassC> {
public void method(ClassBType type) {
type.myClassA = this; //Error. Type mismatch: cannot convert from TestGameMain.ClassA<ClassBType,ClassCType> to TestGameMain.ClassA<TestGameMain.ClassB<ClassCType>,ClassCType>
}
}
public abstract class ClassB<ClassCType extends ClassC> {
ClassA<ClassB<ClassCType>,ClassCType> myClassA;
private void testMethod() {
myClassA.method(this);
}
}
public abstract class ClassC {}
}
Quelle est la bonne façon de résoudre ce problème?
Modifier: J'ai mis à jour le code ci-dessus, qui ne compile pas.
Si oui ou non vous pouvez trouver un moyen de le faire, Puis-je suggérer que cette utilisation de génériques est waaayyy compliquée pour être maintenable. Vous devez trouver une approche plus simple. –
C'est plus une expérience de pensée que quelque chose d'utile. J'ai rencontré ce problème et Eclipse n'a pas trouvé le moyen de le réparer. Je ne l'utilise plus vraiment. –