<? Étend A> n'acceptera pas les cours d'enfants de A

Je travaille avec Android Studio et je continue d'avoir un problème, je ne sais pas comment résoudre. Je ne sais pas si c'est un problème avec Android Studio, avec Java ou une erreur.

J'ai une classe dont le constructeur est le suivant:

  • Intelij Erreur: Cause: org.gradle.internal.component.external.model.DefaultModuleComponentSelector
  • Project.properties dans le projet android
  • Comment remplir l'adaptateur RecyclerView avec Firebase
  • Recherche phonétique des langues indiennes
  • Renvoyer toutes les colonnes d'une table SQLite dans Android
  • Dalvik a-t-il encore plus de faim de mémoire que HotSpot en termes de tailles d'objet?
  • public MakeQuery(Callable<ArrayList<? extends A>) { ... } 

    J'essaie de créer un objet de cette classe avec les lignes suivantes:

     Callable<ArrayList<B>> callable = new Callable<ArrayList<B>>() {...}; MakeQuery makeQuery = new MakeQuery(callable); 

    (Bien sûr, la classe B s'étend A Double check)

    Mais quand j'appelle le constructeur, l'IDE me dit qu'il s'attend à un autre type d'argument.

    Quelle erreur puis-je faire? Merci pour votre aide! 🙂

    One Solution collect form web for “<? Étend A> n'acceptera pas les cours d'enfants de A”

    Ecrire Callable<? extends ArrayList<? extends A>> Callable<? extends ArrayList<? extends A>> Callable<? extends ArrayList<? extends A>> .

    Les raisons de cela sont compliquées, mais le code que vous avez écrit ne fonctionnera que si vous passez exactement Callable<ArrayList<? extends A>> Callable<ArrayList<? extends A>> .

    La règle est que, même si B s'étend A , Foo<B> ne prolonge pas Foo<A> . Il prolonge cependant Foo<? extends A> Foo<? extends A> .

    Alors appliquez cette règle deux fois:

    1. List<B> n'élargit pas la List<A> , mais elle étend la List<? extends A> List<? extends A> .
    2. Callable<List<B>> ne s'étend pas Callable<List<? extends A>> Callable<List<? extends A>> , mais il s'étend Callable<? extends List<? extends A>> Callable<? extends List<? extends A>> Callable<? extends List<? extends A>> .
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.