mrb*_*ela 17 java eclipse lambda
我写了下面的lambda表达式
int size = ((List<?>) receipt.getPositions().stream().filter(item -> true).collect(Collectors.toList())).size()
Run Code Online (Sandbox Code Playgroud)
变量size计算正确!
但是当我尝试检查它(Ctrl+ Shift+ I)或尝试在Eclipse表达式视图中查看表达式的结果时,我收到以下错误:
"Lambda表达式不能用于评估表达式"
有没有其他机会看到这样的表达式的结果而不是将其存储到变量?
PS:我使用的是Java 8和Eclipse neon.2
一个简单有效的解决方案是在匿名类创建中转换 lambda。创建所需接口的变量,您将获得可调试的表达式。
Predicate<Object> predicate = new Predicate<Object>() {
@Override
public boolean test(Object item) {
return true;
}
};
int size = ((List<?>) receipt.getPositions().stream().filter(predicate).collect(Collectors.toList())).size();
Run Code Online (Sandbox Code Playgroud)
现在,如果您在调试时站在“int size = ...”行,您可以查看以下结果:
((List<?>) receipt.getPositions().stream().filter(predicate).collect(Collectors.toList())).size()
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助:)
| 归档时间: |
|
| 查看次数: |
5995 次 |
| 最近记录: |