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

Respuestas a la pregunta(6)

Su respuesta a la pregunta