是否需要在 Streams 中使用 orElse(null)?

5 java java-8 java-stream

我使用此代码片段查找包含'o'字符的字符串列表中的第一项:

List<String> words = Arrays.asList("hi", "hello", "bye", "goodbye");
String s1 = words.stream().filter(word -> word.contains("o")).findFirst().orElse(null);
Run Code Online (Sandbox Code Playgroud)

因此,这将找到具有'o'(hello)的第一项,如果未找到任何内容,它将null按照orElse(null). 所以我的问题是:

是否真的有必要使用orElse(null),如果我没有指定它,如果没有找到任何匹配项,它将返回默认值?

Mur*_*nik 5

findFirst返回一个Optional. 您需要使用其中一种orElse方法来从中获取实际值。