[JAVA] Optionale Typkonvertierung und Rückgabewert (Nullunterstützung)

String args = "1";
Integer a = Optional.ofNullable(args).map(o -> Integer.parseInt(o)).orElse(999);
Integer b = Optional.ofNullable(args).map(o -> Optional.ofNullable(Integer.parseInt(o))).orElse(999);
List<Future<Void>> futures = new ArrayList<>();
for (ExecutorService service : ExecutorServices) {
    futures.add(service.async());
}
Exception exceptions = null;
for (Future<Void> future : futures) {
    try {
        future.get();
    } catch (InterruptedException | ExecutionException e) {
        exceptions = Optional.ofNullable(exceptions).map(exception -> {
            exception.addSuppressed(e);
            return exception;
        }).orElse(e);
    }
}

Es war optional, mit Optional.map zurückzukehren Optional.flatMap erfordertNonNull

public<U> Optional<U> map(Function<? super T, ? extends U> mapper) {
    Objects.requireNonNull(mapper);
    if (!isPresent())
        return empty();
    else {
        return Optional.ofNullable(mapper.apply(value));
    }
}
public<U> Optional<U> flatMap(Function<? super T, Optional<U>> mapper) {
    Objects.requireNonNull(mapper);
    if (!isPresent())
        return empty();
    else {
        return Objects.requireNonNull(mapper.apply(value));
    }
}

Recommended Posts

Optionale Typkonvertierung und Rückgabewert (Nullunterstützung)
null und optionale Typen und Ideale und Realität
Konvertierung zwischen Kotlin nullable und Java Optional
Mockito Argument null Der Annahme-Test hat den Typ angegeben und nicht zurückgegeben
Java-Studie Nr. 3 (Typkonvertierung und Befehlsausführung)
[Java] Berechnungsmechanismus, Operatoren und Typkonvertierung
[Ruby] Unterschied zwischen Puts und Return, Output und Return
Java-Typkonvertierung
Java Optionaler Typ