你好Java开发人员,
我知道主题可能有点 in advance因为JDK8尚未发布(现在还不是.)但我正在阅读一些关于Lambda表达式的文章,特别是与新集合API相关的部分,称为Stream.
以下是Java Magazine文章中给出的示例(它是一个水獭种群算法..):
Set<Otter> otters = getOtters();
System.out.println(otters.stream()
.filter(o -> !o.isWild())
.map(o -> o.getKeeper())
.filter(k -> k.isFemale())
.into(new ArrayList<>())
.size());
Run Code Online (Sandbox Code Playgroud)
我的问题是如果在Set内部迭代的中间,其中一个otter为null会发生什么?
我希望抛出NullPointerException,但也许我仍然坚持以前的开发范例(非功能),有人可以启发我应该如何处理它?
如果这确实抛出了NullPointerException,我发现该功能非常危险,只能如下所示:
什么是最佳选择,或任何其他选择?
谢谢!