小编Pra*_*enS的帖子

我们可以改进这段代码吗?

我需要根据需要按顺序执行的3个检查来选择第一个结果.即如果没有符合标准1的对象,那么我们寻找满足标准2的任何对象,依此类推.这是我的工作代码

MyClass result = myObjects.stream()
        .filter(s -> s.meetsCriterion1())
        .findFirst()
        .orElseGet(() -> {
            return myObjects.stream()
                .filter(s -> s.meetsCriterion2())
                .findFirst()
                .orElseGet(() -> {
                    return myObjects.stream()
                        .filter(s -> s.meetsCriterion3())
                        .findFirst()
                        .orElseGet(() -> {
                            return null;
                        });
                });
        });
Run Code Online (Sandbox Code Playgroud)

我们可以改进这段代码吗?我不确定是否有办法重用第一个流来评估所有标准.

java optional java-8 java-stream

1
推荐指数
1
解决办法
95
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

optional ×1