最佳答案
我知道这个主题可能有点 in advance
,因为 JDK8还没有发布(至少现在还没有发布)。.)但是我读了一些关于 Lambda 表达式的文章,特别是关于新的集合 API Stream 的部分。
下面是 Java 杂志的文章中给出的例子(这是一个水獭种群算法. .) :
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());
我的问题是,如果在 Set 内部迭代的中间,有一个水獭为 null,会发生什么?
我希望抛出一个 NullPointerException,但也许我仍然停留在以前的开发范例(非功能性)中,有人能告诉我应该如何处理这个异常吗?
如果这真的抛出了 NullPointerException,我发现这个特性非常危险,只能按以下方式使用:
什么是最好的选择,或者任何其他的选择?