java lambdaj 'variable_name' 无法解析为变量错误

java lambdaj 'variable_name' cannot be resolved to a variable error

我不熟悉 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 个对象的集合进行流式传输。