Dans un morceau de code que j'ai écrit, j'ai cette ligne: Je reçois une erreur sur une erreur non valide d'un ArrayListe
ArrayList
4 Réponses :
Ce casting est simplement illégal en Java; Une liste de parent ne peut pas être lancée à une liste d'enfant. En outre, la distribution à ArrayList
allSprions code> Be
Liste
Comment ferais-je cela comme j'ai besoin des fonctions de ma classe personnalisée, CLSprites.
Vous pouvez simplement lancer chaque objet dans la liste code> comme vous l'utilisez, ou vous pouvez créer une nouvelle liste list
Pour code> boucle. Aucune solution ne semble idéale mais j'ai bien peur qu'il n'y ait pas de manière plus propre.
Il est fondamentalement dangereux de lancer une arrayliste La raison est que je pouvais faire quelque chose comme ceci: P> < PRE> XXX PRE> C'est la raison, d'ailleurs, que les conversions implicites de Java entre les tableaux sont cassées et pourquoi il y a
arraylist
Classcastexception Code> au moment de l'exécution si vous essayez ceci.
ArraSystoreException code>. Cette distribution n'est pas sûre dans tous les cas. P> P>
D'autres ont déjà expliqué le problème, mais dans ce cas, il y a une solution très simple pour cela. laissez simplement la distribution et votre code compilera. strong> :): pourquoi? p> Regardez à la signature du getparcelableArrayList Code> Méthode: P> public ArrayList<Parcelable> getParcelableArrayList(String key)
Merci pour la grande explication, j'ai essayé de définir la valeur d'une arrayliste
Merci ce bug moi pour toujours, je t'aime
Une solution simple consiste à définir le type d'élément de retour tel que P>
Arraylist
C'est la réponse la plus simple et brillante à ce problème. Cela devrait être la réponse acceptée, je suppose.
Et il est compatible avec le compilateur Javac (utilisé par AndroidStudio). Casting générique J'ai utilisé des travaux dans Eclipse, mais pas dans Android Studio. Devrait être accepté la réponse.
En réalité, le paramètre de type n'est pas nécessaire à la méthode code> getparcelableArrayList code>. Voir Ma réponse pour plus de détails.
Merci ce bug moi pour toujours, je t'aime
... d'accord, alors quelle est votre question b>?
Dupliqué possible de Generics à Java
Regardez le titre, ne peut pas lancer de arraylist à ArrayList
Votre arraylist doit être changé en arraylist étend Clsprite>. Ensuite, cela fonctionnera pour les sous-classes de CLSPRITE, mais vous ne pouvez pas ajouter de nouveaux éléments à une telle arraylist