我写了以下lambda表达式
int size = ((List<?>) receipt.getPositions().stream().filter(item -> true).collect(Collectors.toList())).size()
正确计算变量size
!
但是当我尝试检查它时( Ctrl + Shift + I )或尝试在Eclipse表达式中查看表达式的结果查看,我收到以下错误:
“Lambda表达式不能用于评估表达式”
是否还有其他机会可以查看此类表达式的结果,而不是将其存储到变量中?
P.S。:我正在使用Java 8和Eclipse neon.2
答案 0 :(得分:1)
一个简单的解决方案,可以在匿名类创建中转换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();
现在,如果您在调试时站在“int size = ...”行,您可以查看以下结果:
((List<?>) receipt.getPositions().stream().filter(predicate).collect(Collectors.toList())).size()
我希望它有所帮助:)