Meilleure Carte Constructeur
Est-il plus simple façon de faire les choses suivantes?
Map<String, String> map = new HashMap<String, String>();
map.put("a", "apple");
map.put("b", "bear");
map.put("c", "cat");
Je suis à la recherche de quelque chose de plus proche de cette.
Map<String, String> map = MapBuilder.build("a", "apple", "b", "bear", "c", "cat");
sont les clés/valeurs codées en dur comme ça? si oui, pourquoi pas quelque chose comme le chargement d'une chaîne json stackoverflow.com/questions/443499/json-to-map
double possible de Est-il de meilleures pratiques pour la rédaction des cartes de style littéral en Java? et initialiser java HashSet valeurs par construction
C'est un grand pour les constantes. Surtout pour moi, parce que j'utilise JSON fréquemment et ont souvent des méthodes disponibles.
double possible de Est-il de meilleures pratiques pour la rédaction des cartes de style littéral en Java? et initialiser java HashSet valeurs par construction
C'est un grand pour les constantes. Surtout pour moi, parce que j'utilise JSON fréquemment et ont souvent des méthodes disponibles.
OriginalL'auteur Ben Noland | 2011-07-26
Vous devez vous connecter pour publier un commentaire.
Non, il n'y en a pas, mais j'ai écrit une méthode pour faire exactement cela, inspirée par Objective-C NSDictionary classe:
Cela rompt avec Java génériques de sécurité de type.
Je ne vois pas pourquoi vous voulez réinventer ImmutableMap.(...) dans google collection
Je voudrais réinventer pour éviter l'ajout de encore un autre inutile bibliothèque pleine de inutiles classes quand tout ce que je veux est une méthode unique.
La goyave est pléthorique v18 ajoute 2,5 MO fichier jar (sans sources), si vous allez utiliser 1% de celui-ci, je préfère utiliser des sollutions comme celui-ci pour accélérer la compilation/déploiement de fois.
OriginalL'auteur Maurício Linhares
Il y a toujours double accolade de l'initialisation:
Il y a des problèmes avec cette approche. Elle renvoie un anonyme intérieur de la classe de l'extension de table de hachage, pas une table de hachage. Si vous avez besoin de sérialiser la carte, alors savoir que la sérialisation des classes internes est découragé.
+1. intéressant, je n'ai pas vu ça avant. La Question est de savoir si elle rend la vie vraiment plus facile 🙂
Ce n'est généralement pas une bonne idée pour tout type de production de code. Il crée également la classe anonyme à chaque fois.
non pas qu'il n'est pas Sérialisable, c'est qu'un avertissement du compilateur se plaint de ne pas disposer d'un serialUID.
Je ne sais pas qui pourrait sérialiser anonyme sous-classes, mais même alors, je ne le recommande pas. "la Sérialisation des classes internes (c'est à dire, les classes imbriquées qui ne sont pas membre statique des classes), y compris les locaux et anonyme classes, est fortement déconseillée pour plusieurs raisons."
OriginalL'auteur Nathan Hughes台湾不在中国
Vous pouvez utiliser ImmutableMap.Constructeur de Google collections de la bibliothèque.
OriginalL'auteur Eugene Kuleshov
Vous pouvez toujours utiliser double croisillon initialisation:
Mais gardez à l'esprit cela pourrait ne pas être efficace selon ces réponses.
OriginalL'auteur whirlwin