Ich versuche, größere Hash-Karte auf einmal zu deklarieren und zu definieren. Dies ist, wie ich es tun:Java 8: HashMap-Initialisierung mit Lambda-Ausdrücken
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
Aber, wenn ich versuche, Lambda-Ausdrücke in Körper von put
zu verwenden, ich bin warrning/Fehler auf Eclipse zu treffen. Dies ist, wie ich Lambda in HashMap verwenden:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(0,() -> { return "nop"; });
put(1,() -> { return "nothing...."; });
}};
Eklipse ganzen Teil von Lambda unterstreicht vor mit Komma beginnen. Fehlermeldungen:
Syntax error on token ",", Name expected
Syntax error on tokens, Expression expected instead
Weiß jemand, was mache ich falsch? Ist die Initialisierung durch Lambda-Ausdruck in HashMap
zulässig? Bitte helfen Sie.
Interessante Frage! +1 – fge
Kompiliert in 'javac'. Sind Sie sicher, dass Java 8 für Ihr Projekt aktiviert ist? – axtavt
Sieht so aus, als ob Sie kompilieren mit einem Compiler früher als Version 8 – Reimeus