Veamos un poco más sobre el happy opcional opcional.
Vamos a cerrar acá.
Nos vamos a ir a ejemplo String Filter Single que lo estamos utilizando.
Acá estamos utilizando el usuario, pero el que está dentro de un opcional, un objeto que envuelve,
anida al objeto usuario.
Para agregar más funcionalidad, por ejemplo, cuando buscamos algún registro, un objeto dentro de
una colección utilizando la pís trim, por ejemplo, o también en la base dato bueno podría ser que
nos encuentre, que no exista el usuario y podría devolver un NULL.
Y el problema es que cuando retorna NULL podríamos correr el riesgo de invocar un método y que lance
la acepción null pointer exception.
Justamente lo que hace el opcional es dar una capa de atracción por sobre el objeto para evitar el pulpo
interceptor.
De esa forma, saber y validar si el objeto fue encontrado o no fue encontrado con métodos de ayuda.
Por ejemplo, si está presente o si está vacío o nos encontró o dar alguna alternativa en caso de que
no exista.
En vez de lanzar la acepción poder, por ejemplo, devolver un objeto por defecto o algún valor por
defecto, ya sea mediante una Tsun landa o mediante un método común y corriente.
Bueno, y eso es lo que creo ver ahora.
De qué se trata un poquito más esta API opcional opcional.
Después igual creo que lo vamos a hacer más en detalle, pero por ahora lo más básico.
Comencemos.
Vamos a buscar por Pepe X.
Entonces acá en vez de Pepe le colocamos X.
Obviamente no existe.
Entonces va a lanzar una excepción de que no encontró el objeto.
El elemento.
No, Satch Element Exception se fijan, no hay un valor presente dentro de la opcional, no existe ahora,
por supuesto, si colocamos p.p..
Lo encuentra bien?
Hay muchas formas de manejar esto dentro de lo opcional, como por ejemplo en vez de utilizar el método
GET, utilizar el método OR que muy similar, pero damos una alternativa, entonces or acá tenemos diferente
forma.
El más típico or else, por ejemplo, or es, entonces si se encuentra, lo obtenemos.
Si no se encuentra, devolvemos su valor por defecto.
Por ejemplo, otro objeto usuario acá dice usuario otro new usuario John Do.
Por ejemplo, si no se encuentra que devuelva a Johnno.
Veamos.
Acá se encuentra Pepe, pero colocamos Pepe V o lo que sea, devuelve a Johnno o bien.
Podríamos colocar Nule?
Voy a cortar Nury también un objeto nulo.
Ahora no recomendable, claro, porque corremos el riesgo de caer en el núcleo intercepten, por ejemplo,
pun to IET nombre.
Si lo invocamos, nul po intercepto.
Y justamente lo que trata de evitar esta happy opcional.
Entonces por eso en vez de Nour voy a pegar un objeto usuario por defecto, ya que si nunca vamos a
obtener un pulpo intercepto.
John Independientes se lo encuentra cuando lo encuentra acá lo encuentra.
A Pepe muestra Pepe Mena se fija en Pepe acá, sino a John.
También puedes envienme una presión Lanta.
Entonces, en vez de utilizar el oro Hells simplemente bueno, lo voy a comentar para que lo tenga,
lo voy a copiar.
Entonces por acá tenemos el ghetto y acá pasamos un su playa.
Una prisión lanta?
Recuerden que el tipo su player no recibe argumento, pero siempre devuelve un valor.
Es como una fábrica de objeto.
Acá queremos la instancia y devolvemos el objeto.
Mismo resultado, pero usando una presión lanta.
Entonces, si se encuentra Pepe, si no va a mostrar Johnno.
Tallón.
Voy a copiar.
Puede quitar inquieto?
Me voy a quitar esto de quitar y usted me tremos él?
Or él fru lánzale acepcion o bien or el fro y lanzar una acepción personalizada.
Acá podemos lanzar cualquier excepción que queramos pro-pia ahora este de acá.
Si lo encuentra, devuelve el objeto.
Tal como antes, si no lanza la excepción, cuál?
Bueno, la misma que entrante.
No Sach Element, excepto por lo tanto Or el FRU es bastante similar al Gillet.
Entonces, si el valor está presente, retorna el valor, de lo contrario lanza la excepción.
No Satch Element excepto.
Nyet.
También, si el valor es presente, devuelve el valor.
Entre contrario, la excepción.
Ahora bien, cuando utilizamos el objeto para evitar esta acepción, también podemos utilizar el if.
Hacer uso de métodos kelpers del opcional.
Veamos IFF usuario nuestra opcional punto is present is present.
Acá tenemos dos formas.
Expresen y lo contrario si está vacía, si está vacío o si está presente, pero al final es lo mismo.
Uno es la negación del otro.
Ahora Is empty sólo está disponible de la versión yaba 11 en adelante.
Si están utilizando Yaba 8 is empty no va a existir.
Entonces, por ejemplo, is present.
Si está presente, perfecto.
Imprimimos el objeto con el objeto, es decir, lo obtenemos y lo podemos utilizar.
Que nombre?
Guet, apellido.
Lo utilizamos como queramos.
Els Shout
nos encontró el objeto.
PBX se fijan yendo lanza la excepción, nos encontró el objeto, lo estamos manejando con expresa.
PP.
Va a mostrar a PP los datos?
Pepe el nombre Pepe.
Entonces es muy importante is present.
Ahora se están utilizando Java 11 en adelante con la negación.
Is empty.
Se distinto a vacío, por eso negamos.
Llegamos exactamente el mismo resultado que Is present.
Bien, de esta forma es mejor usar is present.
Incluso acá nos dice mejor reemplazar con y presenta.
Nos amamos de esa forma.
Llega tenemos Filter Single 2, creo que también estamos utilizando.
Claro, perfecto, acá claro.
Qué pasa con el Heidy 3?
Existe, pero si colocamos el Heidy 6 va a lanzar el error.
Entonces acá podría manejarlo de una forma, quizás un poco más segura.
Ya saben, diferente forma como la que vivimos.
Pero acá, para simplificar, podemos utilizar or es guet.
Con una empresa alta.
Hay tanto.
Johnno Ahora si existe el 4 Pepe Mena.
Pepe Mena.
Ahora, si me quieren utilizar el oro, el skeet con algún valor por defecto.
Bueno, pueden utilizar esta forma con el Life is present con algún mensaje, pero acá tendrán que modificar
un poco esto de acá.
Entonces que devuelva el opcional.
Por lo tanto, esto acá lo invocamos fuera del stream tal como lo tenemos acá.
Una breve introducción al API opcional.
Nos vemos en la siguiente clase.