Je suis toujours aux prises avec des médicaments génériques. Je ne sais pas pourquoi cela rend ma folie. J'ai un vieux problème que j'ai plusieurs fois.Lutte contre les génériques et les classes
class Father {
...
}
class Child1 extends Father {
...
}
class Child2 extends Father {
...
}
public class TestClass {
private static Class<? extends Father>[] myNiceClasses = new Class<? extends Father>[] {
Child1.class,
Child2.class
}
}
qui ne pas travail. Le compilateur se plaint comme ceci:
Cannot create a generic array of Class<? extends Father>
Si je change la ligne de tableau (défectueuse) à
private static Class<Father>[] myNiceClasses = new Class<Father>[] {
le même message d'erreur se produit, mais aussi ce message est ajouté:
Type mismatch: cannot convert from Class<Child1> to Class<Father>
La seule version fonctionnelle est cette ligne:
private static Class<?>[] myNiceClasses = new Class<?>[] {
Cette solution n'est pas satisfaisante, car vous ne pouvez pas lancer si facilement. Donc, ma question est: Comment résoudre ce problème? Où est le noeud dans mon cerveau?
+1. Utilisez des génériques avec des collections, pas des tableaux. – seanmonstar