Statische HashMap Initialisierung
Ich habe diese Klasse, ich will wissen:
1° Ist dies der beste Weg zum definieren einer statischen HashMasp
2° Ist dies der beste Weg, es zu tun in einer Spring-basierten Anwendung?(bedeutet Frühling bieten Sie einen besseren Weg, dies zu tun?)
Vielen Dank im Voraus!
public class MyHashMap {
private static final Map<Integer, String> myMap;
static {
Map<CustomEnum, String> aMap = new HashMap<CustomEnum, String>();
aMap.put(CustomEnum.UN, "one");
aMap.put(CustomEnum.DEUX, "two");
myMap = Collections.unmodifiableMap(aMap);
}
public static String getValue(CustomEnum id){
return myMap.get(id);
}
}
System.out.println(MyHashMap.getValue(CustomEnum.UN));
1) ja, absolut
Könnte interessant sein zu wissen, dass mit java-9 Sie werden in der Lage sein zu erstellen, die anzeigen auf dem Sprung in eine ähnliche Weise wie Arrays.asList die es erlauben würde, Sie zu vermeiden, die static-block. Versuchen zu finden, wo ich das gelesen habe, schon...
Dort gehen Sie...
Könnte interessant sein zu wissen, dass mit java-9 Sie werden in der Lage sein zu erstellen, die anzeigen auf dem Sprung in eine ähnliche Weise wie Arrays.asList die es erlauben würde, Sie zu vermeiden, die static-block. Versuchen zu finden, wo ich das gelesen habe, schon...
Dort gehen Sie...
Map.ofEntries
und Map.of(...)
.InformationsquelleAutor Marco Aviles | 2016-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einige Ansätze, dies zu tun. Zum Beispiel, wenn Ihre Karte ist unveränderlich, Sie könnten erwägen, die Google Guava Bibliotheken
Es hat eine ImmutableMap Klasse, die verwendet werden könnten, zu erstellen Sie Ihre Karte wie:-
Wenn Sie schon mit der Spring Framework und Verdrahtung der Bohnen mithilfe von XML -, dann könnten Sie füllen die Karte direkt über die XML als :-
InformationsquelleAutor Stephen84s
Entweder Sie verwenden können, Guava library. Aber wenn Sie nicht wollen, zu verwenden 3rd-party-Bibliothek, dann gibt es zwei Möglichkeiten, es zu tun:
Statische Initialisierer
Instanz initialiser (anonyme Unterklasse).
Angenommen, Sie später hinzufügen möchten, einige Konstante ansehen, dann können Sie das auch tun.
Sammlungen.unmodifiableMap: Es hilft, haben eine unveränderliche Ansicht der Karte, die nicht modifiziert werden können. Da gibt es nicht unterstützt-Ausnahme, wenn eine änderung gemacht wird, um die Karte.
InformationsquelleAutor Gurpreet Singh