如何在 Java 8 中执行空检查

Sri*_*i V 0 java foreach java-stream

如何在java 8中编写以下代码

List<String> names = service.serviceCall();

if(names != null) { // **how to do this null check with java 8**
    names.forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)

And*_*ner 9

你可以做:

Optional.ofNullable(names).orElse(Collections.emptyList()).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

或者

Optional.ofNullable(names).ifPresent(n -> n.forEach(System.out::println));
Run Code Online (Sandbox Code Playgroud)

或者

Stream.of(names)
    .filter(Objects::nonNull)
    .flatMap(Collection::stream)
    .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

但不要。看看你必须写的所有额外的东西。

只需使用简单的旧空检查,就像您已经在代码中一样。