【发布时间】:2020-06-30 13:26:59
【问题描述】:
我一直在使用流 api 一段时间,但直到现在还没有遇到任何此类情况。为什么这段代码会抛出 NPE?
public static void main(String[] args) {
MarkupModel m1 = new MarkupModel();
m1.setOverrideFlag(true);
MarkupModel m2 = new MarkupModel();
m1.setOverrideFlag(false);
List<MarkupModel> markupModelList = new LinkedList<>();
markupModelList.add(m1);
markupModelList.add(m2);
List<MarkupModel> typeAMarkupStream = markupModelList.stream()
.filter(markupModel -> !markupModel.getOverrideFlag())
.collect(Collectors.toList()); //NPE thrown here
}
【问题讨论】:
-
可能是拼写错误,但您仅为 m1 设置标志。
-
确实是@Eritrean,标志是
Boolean,所以m2有一个null。 -
@Eritrean 你找到了。这是一个错字。我的坏!
标签: java list java-8 functional-programming java-stream