我正在尝试一次声明和定义更大的哈希映射。我就是这样做的:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
但是,当我尝试在 body 中使用 lambda 表达式时put
,我遇到了 eclipse 警告/错误。这就是我在 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
有人知道我在做什么错吗?是否允许通过 lambda 表达式进行初始化HashMap
?请帮忙。