A very common use case when dealing with options...
val values = List(Some("a"), None, Some("b")).flatten
List<Optional<String>> optionalValues = Arrays.asList(Optional.of("a"), Optional.empty(), Optional.of("b"));
List<String> values = optionalValues.stream()
.flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty())
.collect(Collectors.toList());
val values = listOf("a", null, "b").filterNotNull()
Note : it's different to use null in Kotlin because listOf("a", null, "b")
will be infered as a List<String?>
, ?
is the replacement for Option/Optional in Kotlin and allows to use null safely.
Java, as verbose as ever.