如何在Java8流中过滤和记录空对象
我正试图了解java8流,想知道是否有人能帮我解决这个问题
在旧爪哇
List<Obj> newObjs = ArrayList<Obj>();
for (Obj obj : objects){
if(obj == null){
logger.error("null object");
}
else{
newObjs.add(...)
}
}
基本上,我想过滤空对象并记录它。 在Java8中,什么是实现这一点的好方法
# 1 楼答案
您可以使用^{} 并在其中放入一个if语句:
但这种方式会失去流的简洁性,所以我个人仍然会使用一个普通的for循环来实现一些简单的事情,比如“过滤空值并收集到列表”
请记住,流不会替换for循环。不要仅仅因为流是新的和闪亮的就使用它
# 2 楼答案
我建议将这种逻辑转换成不同的方法
然后流式处理列表