De retour de Java en option IfPresent ()

Fred Clausen:

Je comprends que vous ne pouvez pas revenir d'un ifPresent()si cet exemple ne fonctionne pas:

public boolean checkSomethingIfPresent() {
    mightReturnAString().ifPresent((item) -> {
        if (item.equals("something")) {
            // Do some other stuff like use "something" in API calls
            return true; // Does not compile
        }
    });
    return false;
}

mightReturnAString() pourrait retourner une chaîne valide ou une option vide. Ce que je l' ai fait des œuvres est:

public boolean checkSomethingIsPresent() {
    Optional<String> result = mightReturnAString();

    if (result.isPresent()) {
        String item = result.get();
        if (item.equals("something") {
            // Do some other stuff like use "something" in API calls
            return true;
        }
    }
    return false;
}

qui est plus longue et ne se sent pas très différent de simplement vérifier les valeurs nulles en premier lieu. Je me sens comme il doit y avoir une façon plus succincte en utilisant en option.

aussi:

Je pense que tout ce que vous cherchez est tout simplement filteret vérifier la présence alors:

return result.filter(a -> a.equals("something")).isPresent();

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=208588&siteId=1
conseillé
Classement