¿Cómo funciona esto - Java 8 Optional.of y Optional.ofNullable

user3792861:

Tengo pregunta con Java 8 Opcionales.

El siguiente código da error de compilación:

Integer number = Optional.ofNullable(new Integer(10)); 

Pero cuando hacemos lo siguiente que hace no , no entiendo cómo esto está funcionando:

Integer number = Optional.ofNullable(new Integer(10)).orElse(10); 

Si nos fijamos en la documentación de Optional.ofNullable(), devuelve un objeto del tipo static <T> Optional<T> ofNullable(T value)que quiere decir que está internamente la conversión de tipos, pero la documentación dice que vuelva tipo es Optional.

Consigo que el .orElsetipo de retorno método es Tque funcionaría bien si se va a orElsecondición, es decir, en caso de que el objeto sea aprobada en null, pero si no es nulo, ¿cómo es que encasillado?

Ravindra Ranwala:

Echar un vistazo a la declaración del método,

public static <T> Optional<T> ofNullable(T value)

Así que esto se lleva a T y vuelve Optional<T>Así que en su caso se toma Integery devuelve unaOptional<Integer>

Así que cuando usted hace esto,

Optional.ofNullable(new Integer(10)).orElse(10);

La orElsellamada se desenvuelva el opcional y devuelve el valor en él si no está vacío. De lo contrario, simplemente devuelve el valor dado.

Actualizar

De acuerdo con los siguientes comentarios se puede simplificar aún más, dejando el trabajo a la Autoboxing.

Optional.ofNullable(10).orElse(10);

Supongo que te gusta

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