我試圖一次聲明並定義較大的哈希映射。這就是我要做的事:Java 8:使用lambda表達式進行HashMap初始化
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
但是,當我嘗試在put
人體利用lambda表達式,我打的日食warrning /錯誤。這就是我如何在HashMap中使用lambda:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(0,() -> { return "nop"; });
put(1,() -> { return "nothing...."; });
}};
Eclipse強調了以逗號開頭的lambda的整個部分。 錯誤消息:
Syntax error on token ",", Name expected
Syntax error on tokens, Expression expected instead
有人知道我在做什麼錯嗎?是否允許在HashMap
初始化lambda表達式?請幫忙。
有趣的問題! +1 – fge
在'javac'中編譯。你確定你的項目啓用了Java 8嗎? – axtavt
看起來像編譯前版本8編譯器 – Reimeus