Java Map Compute BiFunction无法识别Lambda函数

时间:2016-01-16 17:09:14

标签: java lambda

我正在学习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来进行验证。

enter image description here

0 个答案:

没有答案