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

标签 java-8 java-stream lambdaj

我是 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/

相关文章:

Java 8 流分组依据

java - 构建自定义 JDK,删除无用的库

java - Java 8 Stream并行处理时,所有处理器核心的缓存是否同步?

java - 使用 lambdaj 实现多种排序条件

java - 查找具有不同对象的集合之间的交集

java-8 - 支持 Java 8 并在 Tomcat 8.5 上运行的 Oracle Jdbc 驱动程序版本

java - 串行 Steam 的性能、内部工作和执行顺序

java - 通过使用 java 流 api 的比较器对 map 的值进行排序

java - 处理 java.lang.Number 子类操作的通用泛型方法

java - DTO 模式 : Best way to copy properties between two objects