Wie initialisiere ich eine Karte mit einem Lambda?
Ich möchte ein vollständig ausgefülltes Kartenfeld in einer einzigen Anweisung deklarieren (die mehrere verschachtelte Anweisungen enthalten kann):
private static final Map<Integer,Boolean> map =
something-returning-an-unmodifiable-fully-populated-HashMap;
Anonyme Initialisierer funktionieren nicht, aus demselben Grund wie das Aufrufen einer Funktion, die eine neue aufgefüllte Map zurückgibt: Sie erfordern zwei Anweisungen der obersten Ebene: eine für die Variablendeklaration und eine für die Methode oder den Initialisierer.
Die doppelte geschweifte Klammer {{
und}}
) idiom wird funktionieren, aber es erzeugt eine ganz neue Klasse, die @ erweiteHashMap<>
, und ich mag den Overhead nicht, der dadurch dargestellt wird.
Bieten die Lambdas von Java 8 vielleicht eine bessere Möglichkeit, dies zu erreichen?