大きなハッシュマップを宣言して定義しようとしています。これは私がそれを行う方法です。Java 8:ラムダ式を使ったHashMapの初期化
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
しかし、私はput
のボディにラムダ式を使用しようとすると、私は日食warrning /エラー時に当たっています。これは私がHashMapのでラムダを使用する方法である:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(0,() -> { return "nop"; });
put(1,() -> { return "nothing...."; });
}};
Eclipseは前にコンマで始まるラムダの全体の一部を強調しています。 エラーメッセージ:
Syntax error on token ",", Name expected
Syntax error on tokens, Expression expected instead
誰も私が間違っているのか知っていますか?ラムダ式による初期化はHashMap
で許可されていますか?助けてください。
興味深い質問を! +1 – fge
'javac'でコンパイルします。あなたのプロジェクトでJava 8が有効になっていますか? – axtavt
あなたが以前のバージョン8のコンパイラでコンパイルしているように見えます – Reimeus