En javadoc dit ceci :
"Renvoie une liste immuable contenant uniquement l'objet spécifié. La liste retournée est sérialisable."
Vous demandez :
Pourquoi voudrais-je avoir une méthode séparée pour faire cela ?
Principalement par commodité ... pour vous éviter d'avoir à écrire une séquence d'instructions pour .. :
- créer un objet liste vide
- y ajouter un élément, et
- l'envelopper avec un wrapper immuable.
Elle peut également être un peu plus rapide et/ou économiser un peu de mémoire, mais il est peu probable que ces petites économies soient significatives. (Une application qui crée un grand nombre de listes singleton est pour le moins inhabituelle).
Comment l'immuabilité joue-t-elle un rôle ici ?
Il fait partie de la spécification de la méthode ; voir ci-dessus.
Existe-t-il des cas d'utilisation particuliers pour cette méthode, plutôt qu'une simple méthode de commodité ?
Il est clair qu'il y a des cas d'utilisation où il est pratique d'utiliser l'outil de gestion de l'information. singletonList
méthode. Mais je ne sais pas comment vous feriez (objectivement) la distinction entre un cas d'utilisation ordinaire et un cas "spécialement utile" ...
8 votes
Voici un exemple de l'utilité de ce système. stackoverflow.com/a/1239631/360811
3 votes
Duplicata possible de Arrays.asList() vs Collections.singletonList()
5 votes
@sschuberth, veuillez comparer les dates des questions. Le PO n'était pas conscient qu'il pouvait dupliquer une question future.
0 votes
C'est vrai, @KumarAnkit, mais les liens vers les doublons sont toujours utiles pour les personnes qui cherchent des réponses alternatives / potentiellement meilleures. En fait, je pense que les liens vers les doublons devraient être considérés comme une chose bidirectionnelle, et que les meilleures questions/réponses devraient être conservées, qu'elles soient plus anciennes ou plus récentes.
1 votes
@sschuberth, bon point, mais elle devrait être classée comme similaire, comme cette question ici.
0 votes
@sschuberth - Ce n'est pas bidirectionnel. Fermer une question en tant que doublon empêche d'y ajouter d'autres réponses. Donc, si quelqu'un ferme à tort une question en double simplement parce qu'elle est liée, il bloque en fait de nouvelles contributions potentiellement utiles.