我正在学习Java中的Map类,无法让compute
方法起作用。
我发现了一个很好的教程here,它演示了如何通过这样的方式传递BiFunction或lambda函数来计算:
System.out.println(map.compute("A",
(k, v) -> v == null ? 42 : v + 41));
逻辑非常简单,获取其键为' A'的值,检查值是否为null,然后将值设置为42,否则,现有值加41。
但是,当我尝试在Eclipse中运行代码时,它正在抱怨
Multiple markers at this line
- v cannot be resolved to a variable
- Syntax error, insert "AssignmentOperator Expression" to complete
Assignment
- v cannot be resolved to a variable
- Syntax error on token ">", invalid (
- v cannot be resolved to a variable
- Syntax error, insert ")" to complete Expression
- k cannot be resolved to a variable
我很确定我一直在使用Java 8的JRE环境,并想知道我是否可以在这里获得任何帮助。我通过删除Eclipse中的所有其他java环境并添加System.out.println(System.getProperty("java.version"));
来仔细检查输出是1.8.0_65
来进行验证。