Al regresar de Java opcional ifPresent ()

Fred Clausen:

Yo entiendo que no pueda regresar de una ifPresent()por lo que este ejemplo no funciona:

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;
}

¿Dónde mightReturnAString() podría devolver una cadena válida o un opcional vacía. Lo que he hecho es que las obras:

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;
}

que es más largo y no se siente muy diferente a simplemente la comprobación de valores nulos en el primer lugar. Siento que debe haber una manera más sucinta usando opcional.

también:

Creo que todo lo que está buscando es simplemente filtery comprobar la presencia continuación:

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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=208591&siteId=1
Recomendado
Clasificación