在实现java.util.function.Function <t,r>时,是否需要检查空输入

时间:2016-04-29 09:49:16

标签: java java-8

使用java8流API时

.stream().map(mapper)

是否需要在apply(T t) java.util.function.Function<T,R>方法中实现null检查t输入apply(T t)?或者,即使我的null - ed stream()包含Collection s,也可以保证null方法永远不会使用 .stream().map(mapper) 参数调用吗?

换句话说,

null

允许将apply(T t)值传递到NullPointerException并且不会抛出Content-Range

1 个答案:

答案 0 :(得分:3)

这取决于您是否期望null作为输入。通常,您会希望避免使用null是一个流(或抛出检查异常)。你可以做到

list.stream()
    .filter(x -> x != null)
    .... do more

如果你这样做,请注意

Stream.of("hi", null).forEach(System.out::println);

将打印

hi
null

请参阅http://ideone.com/eoQ3so