Java 8:使用 lambda 表达式进行 HashMap 初始化
2022-09-03 15:24:02
我试图一次声明和定义更大的哈希映射。我是这样做的:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
但是,当我尝试在 的正文中使用 lambda 表达式时,我遇到了 eclipse warrning/error。这就是我在HashMap中使用lambda的方式:put
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
有谁知道我做错了什么?是否允许使用 lambda 表达式进行初始化?请帮忙。HashMap