quelles sont les différentes façons de créer une liste de tableaux et Hashmap en groovy
J'ai créé une liste de tableaux comme suit:
def list = new ArrayList()
Mais la codenarc rapport, il est d'avertissement comme suit.
ArrayList objects are better instantiated using the form "[] as ArrayList"
Quels sont les meilleurs moyens pour instancier les collections?
OriginalL'auteur srini | 2011-06-28
Vous devez vous connecter pour publier un commentaire.
Que vous pouvez faire:
Et encore une fois, pour
HashMap
:La valeur par défaut dans ce cas est un
LinkedHashMap
:Vrai, mais je ne voudrais pas l'utiliser comme je ne pouvais pas dire si ça sera toujours le cas dans les versions futures
OriginalL'auteur tim_yates
Typique est:
d'autres options incluent
et bien sûr:
Des options similaires existent pour
HashMap
à l'aide de[:]
.List list = [] as ArrayList()
ne fonctionne pasIl devrait être
List list = [] as ArrayList
, je veux dire que lors de l'utilisation de[] as XYZ
, les parenthèses ne sont pas inclus à la finet quatre ans plus tard, mon erreur est corrigée! Merci, j'ai édité.
OriginalL'auteur Eric Wilson
De l'OMI, c'est de mauvais conseils sur Codenarc de la partie, car elle suppose que la mise en œuvre type de
[]
estArrayList
. Cela est vrai aujourd'hui, mais ne peuvent pas toujours être.Le plus simple/le meilleur/l'habitude de créer un
List
mise en œuvre est:Si cela est possible, je l'habitude d'écrire quelque chose comme
Juste pour le rendre un peu plus évident que cette liste devrait contenir, c'est à dire pour des raisons de lisibilité du code. Si je voulais créer un type spécifique de la liste, je voudrais instancier un
List
"la Java de façon"Mais dans la pratique, je ne me souviens jamais faire cela.
List<String>
donner autant d'avantages en Groovy, comme en Java. Je sens que ce soitdef list = []
ouList list = []
s'intègre mieux avec le Groovy état d'esprit.OriginalL'auteur Dónal
Pourquoi ne pas simplement utiliser une suggestion de codenarc?
OriginalL'auteur Andrey Adamovich