Java LambdaJ:为什么我们不能在select子句中应用操作?
上面的代码引发异常。在选择之前必须对%操作进行评估,而您希望对每个条目对其进行评估。i、 您需要的是Java8中提供的闭包 如果使用循环,则可以编写Java LambdaJ:为什么我们不能在select子句中应用操作?,java,lambda,functional-programming,lambdaj,Java,Lambda,Functional Programming,Lambdaj,上面的代码引发异常。在选择之前必须对%操作进行评估,而您希望对每个条目对其进行评估。i、 您需要的是Java8中提供的闭包 如果使用循环,则可以编写 select(list, having(on(Integer.class).intValue() % 2, equalTo(0))); Java的语法通常使使用循环成为最干净的解决方案,而在理想情况下,您应该有一个选择,这也要快得多。您需要定义自己的匹配器: for(int i: list) if(i % 2 == 0) /
select(list, having(on(Integer.class).intValue() % 2, equalTo(0)));
Java的语法通常使使用循环成为最干净的解决方案,而在理想情况下,您应该有一个选择,这也要快得多。您需要定义自己的匹配器:
for(int i: list)
if(i % 2 == 0)
// do something with i.
改编自:http://code.google.com/p/lambdaj/wiki/LambdajFeatures
Matcher<Integer> even = new Predicate<Integer>() {
public boolean apply(Integer item) {
return item % 2 == 0;
} };