¿Utiliza Opcional.ofNullable como reemplazo del operador ternario como una buena práctica?
Considere el uso de esta expresión:
String hi = Optional.ofNullable(sayHi()).orElse("-");
que corresponde efectivamente a esta expresión ternaria:
String hi = sayHi() != null ? sayHi() : "-";
¿Es este uso deOptional.ofNullable
con un método llamado una buena práctica? ¿O simplemente una codificación detallada adicional?
Reconozco queOptional.ofNullable
en realidad crea una variable y evita llamar asayHi()
método dos veces. Para evitar este problema, en realidad podría crear una variable adicional, pero esto se suma a la verbosidad de la opción ternaria:
String hi = sayHi();
hi = hi != null ? hi : "-";
Por otra parteOptional.ofNullable
crea en caso dehi
no sernull
un extraOptional
objeto. Por lo tanto, seguramente hay más sobrecarg
or lo tanto, parece haber algunas ventajas y desventajas de utilizar este tipo de construcción para reemplazar el constructor ternario.
Por cierto: esta es la implementación de Java 8 deOptional.ofNullable
:
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}