Ich mache mir jedes Mal ein wenig Sorgen, deshalb schreibe ich es als Memorandum
Alles, was Sie tun müssen, ist sich an die Idee zu erinnern, einen leeren Stream mit orElse zurückzugeben
Zusammenfassung
Optional.ofNullable(arr)
.map(Arrays::stream).orElse(Stream.empty())
.forEach(System.out::println);
Ich möchte ein Array streamen, das möglicherweise null ist.
Für Anweisungen erweitert, sind "Arrays # stream" und "Stream # of" nicht null-sicher. Es ist jedoch mühsam, jedes Mal null zu überprüfen.
Bei Verwendung der for-Anweisung
String[] arr = null;
for (String s : arr) { //Hier NullPointerException
System.out.println(s);
}
Bei Verwendung von Arrays
String[] arr = null;
Arrays.stream(arr) //Hier NullPointerException
.forEach(System.out::println);
// Stream#von auch intern Arrays#Scheint Stream zu verwenden
Stream.of(arr) //Hier NullPointerException
.forEach(System.out::println);
Stream # empty
einen leeren Stream zurückBei Verwendung von Optional
String[] arr = null;
Optional.ofNullable(arr) //Optional an dieser Stelle<String[]>
.map(Arrays.stream) //Optional an dieser Stelle<Stream<String>>
.orElse(Stream.empty()) //Stream an dieser Stelle<String>,Streamen Sie den Inhalt des Arrays
.forEach(System.out::println);
Recommended Posts