我是 Java 8 特性的新手,这可能是一个愚蠢的问题,但我在这一点上被卡住了。
我试图在 eclipse 中运行以下代码,但它给出了编译时错误。
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Stream;
import ch.lambdaj.Lambda;
public class LambdajTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add(1);
list.add(3);
list.add(8);
list.add(10);
list.add(16);
int sum = list.stream().filter(p -> p > 10).mapToInt(p -> p).sum();
}
}
错误是:- p 无法解析为变量。
我在类路径中添加了 lambdaj 2.3.3 jar。
请提供解决方案。
提前致谢。
最佳答案
问题是JVM不知道是什么对象p
就像您使用原始集合一样。
改变List list = new ArrayList();
到List<Integer> list = new ArrayList<>();
JVM 现在知道它正在通过 Integer
的集合进行流式传输。对象。
关于java-8 - java lambdaj 'variable_name' 无法解析为变量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36207969/