【发布时间】:2018-12-26 23:09:37
【问题描述】:
我正在拨打服务电话并尝试处理响应。 响应可能有一些东西的列表。该列表可能为空。
此外,如果列表不为空或不为空,则 它需要被过滤。 如果过滤没有给出任何结果或响应列表为空或为空,则代码中的“条目”引用可能为空。
目前,当我尝试在空响应列表上使用 stream() 时,我得到了 NPE。 我该如何处理这种情况?
@Getter
public class ServiceResponse {
List<ResponseEntry> entryList;
}
@Getter
public class ResponseEntry {
String value;
}
ServiceResponse serviceResponse = service.getServiceResponse();
ResponseEntry entry = serviceResponse.getEntryList()
.stream()
.filter(e -> "expectedValue".equals(e.getValue()))
.findFirst()
.orElse(null);
if (entry == null) { ... }
【问题讨论】:
-
为什么列表可能为空?没有回复的列表值方法的首选返回是
emptyList()。
标签: java java-8 java-stream optional