java8 lambda for_java8 lambda foreach return变量报错

这篇博客介绍了在Java中如何在foreach循环中使用lambda表达式处理结果。文章通过示例展示了由于foreach的lambda函数返回值为void,因此无法直接返回非void的结果。作者提出了两种解决方案:一是使用final变量在外围存储结果;二是结合filter和collect方法来获取并处理结果。
摘要由CSDN通过智能技术生成

因为foreach的lambda函数的返回值是void,所以你不能返回一个非void的result: https://docs.oracle.com/javas...

如果你要把结果带出来,有两种办法可以做到。

第一种是在foreach的lambda外面定义一个final变量,比如:

final UserEntity[] result = new UserEntity[1]

list.foreach(entry -> {

result[0] = entry;

return;

});

另一种是直接用filter()将结果过滤出来,然后用collect()方法收集结果。

package com.concretepage;

import java.util.List;

public class FilterFindFirstAndForEach {

public static void main(String[] args) {

List list = User.getUsers();

System.out.println("Using findFirst() ---");

User user = list.stream().filter(u -> u.getName().endsWith("sh"))

.findFirst().orElse(null);

System.out.println(user.getName());

System.out.println("Using forEach() ---");

list.stream().filter(u -> u.getName().endsWith("sh"))

.forEach(u -> System.out.println(u.getName()));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值