Qu'est-ce que les Collections.checkedList() appel à java?
Je veux juste savoir pour quoi java.util.Collections.checkedList()
est réellement utilisée.
J'ai un code que je sais, c'est le retour de moi un List<String>
mais il est transmis par une chaîne d'appels de messagerie et revint vers moi comme un java.io.Serializable
. C'est que checkedList appel bon pour moi de tourner mon Serializable
dans un List<String>
? Je sais que je peux la convertir en une java.util.List
, mais je préfère ne pas avoir à vérifier chaque élément et je ne suis pas à l'aise avec en supposant que chaque élément est un String
.
Vous devez vous connecter pour publier un commentaire.
Il est utilisé en partie comme un outil de débogage pour trouver où le code insère une classe de type incorrect, dans le cas où vous voir ce qui se passe, mais ne peut pas trouver.
Vous pouvez l'utiliser comme une partie d'une API qui fournit une collection et vous voulez vous assurer que la collection ne sera pas obtenir quoi que ce soit de type incorrect (par exemple, si le client efface les génériques).
La façon dont vous pourriez utiliser dans votre cas est:
Si ce n'est pas de générer une exception, alors vous savez que vous êtes bon. Qui n'est pas exactement une performance optimisée morceau de code, mais si le contenu de la liste sont de taille raisonnable, il doit être fine.
Pas tout à fait:
Collections.checkedList
sera seulement décorer la liste de prévenir tout futur inserts avec des objets de la mauvaise classe, il ne vérifie pas tous les éléments qui sont déjà dans la liste.Cependant, vous pourriez faire un nouveau checkedList, et ensuite appeler
addAll
et passez dans la liste, vous n'êtes pas sûr au sujet plutôt que de l'écriture de la boucle de vous-même.Une discussion de ce
checkedList
pourrait être utilisé pour est disponible dans la documentation de checkedCollection. Les raisons invoquées sont:Vous pouvez utiliser les éléments suivants à partir de google collections pour vérifier que la liste ne fait que contenir des chaînes: