En caso Optional.ofNullable () se utiliza para la comprobación nula?

jugo de manzana :

¿Qué nula-cheque es preferible?

Optional.ofNullable(port).ifPresent(settings::setPort);

o

if (port != null) {
   settings.setPort(port);
}
Stuart Marcas:

En Java, un Optionalvalor es una fusión de un bit que indica la presencia o ausencia, con un valor de un tipo de referencia arbitrario To una primitiva int, longo double.

La fusión de estos es especialmente útil cuando se devuelva un valor de un método, como métodos tienen sólo un único valor de retorno. A menudo es necesario utilizar un valor especial, como nullen el caso de los tipos de referencia, o -1 en el caso de int, como centinela para indicar el caso "no-valor". Utilizando Optionalcomo valor de retorno evita el problema de la persona que llama accidentalmente el mal uso del valor centinela como valor de retorno real.

Dado esto, línea de código tal como

Optional.ofNullable(port).ifPresent(settings::setPort);

es extraño en que se fusiona un valor con el bit presente / ausente en la primera parte de la línea y luego los separa inmediatamente en la segunda parte de la línea. Esto añade complejidad a lo que es en última instancia una tarea bastante sencilla: la comprobación de si portno es nulo y la realización de alguna acción condicional. El fragmento de código alternativa:

if (port != null) {
    settings.setPort(port);
}

expresa con toda claridad exactamente lo que hace.

Es cierto que la sentencia if ocupa un espacio más vertical que la Optionalcadena. La Optionalcadena es más denso, pero también es más difícil de entender: un equilibrio pobre.

Supongo que te gusta

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