Bienvenidos.
Continuamos con la clase Optional de ya 8.
Vamos a cerrar.
Vamos a crear un nuevo proyecto.
Place?
Obtener?
Okay.
Bien, vamos a crear el pacato.
Por punto a Guzmán o gional.
Punto.
Ejemplo Bien, pérate continuar una pequeña introducción.
Bueno, en ya 8 se introduce esta nueva clase optional en el paquete ya útil y se utiliza para representar
que un valor esté presente o ausente.
Y la principal ventaja que tiene esta nueva característica es que evita cualquier lanzamiento de excepción
nulo intercepción en tiempo de ejecución.
Recuerden que esta excepción es no chequeada.
Por lo tanto, podría ocurrir de forma silenciosa a pesar de que seamos muy cuidadosos en nuestra aplicación.
Igualmente, podríamos tener algún objeto, alguna referencia null y podría romper nuestra aplicación.
Entonces esta happy optional.
Evita el lanzamiento de esta sección en el puente Deception anidando o encapsulado el objeto dentro
de esta clase opcional y además nos ayuda a desarrollar aplicaciones mucho más limpias y organizadas
utilizando programación funcional.
Presiona el Landau y también muy parecido a la colecciones de objeto, los list, los sets, los arreglos.
Bueno, un optional también es un contenedor que podemos guardar como máximo un solo objeto, un solo
valor.
A diferencia de las listas o arreglos que podemos tener muchos acá, uno solo.
Bueno, entonces, para resumir ventajas no se requiere controles de null, no necesario tener que validar
con un IF si el objeto es igual anul hacer algo, no otra cosa no.
Acá tenemos otros caminos, otras alternativas utilizando el API obtener bien.
Veamos un ejemplo vamos a crear la clase con el main.
Ejemplo optional.
Por ejemplo, string nombre Andrés.
Bien, ahí tenemos un objeto que no es nulo, tiene un contenido y esto lo podemos guardar dentro de
una opcional y podríamos validar si está presente o no, porque también podría ser que nombre sea una
referencia nula y podría ocurrir este error.
Порно intercepten por ejemplo, cuando invocamos métodos, vamos a partir con el String.
Pero por supuesto, como todo en Java podemos utilizar cualquier tipo de referencia.
Podemos utilizar cualquier tipo de clase, tanto un string como un Integer o una clase propia nuestra.
Por ejemplo, usuario.
Cómo creamos una opcional?
Primero, opcional y el tipo de dato que va a contener.
En este caso.
String vamos a importar de yeva útil.
PT Una opcional igual es sin en new optional, de forma estática, con diferente método, con el off
off now label o empty.
Empty es para crear un opcional vacío.
Off es para crear un opcional a partir de una referencia de un objeto que pasamos por argumento no acepta
nulo.
Es decir, en el loft no podemos pasar un objeto o una instancia null y el off culebro si permite nulos.
Por eso es NULL Lauper.
Podemos pasar un objeto con referencia o un null.
Primero apartamos con off.
Entonces el objeto nombre, en este caso bien shout o zombi.
Mejor vamos a imprimir, opte el obtener levantemos.
Topete igual o un oft tonal con el valor Andrés, por lo tanto, el contenido, el valor está presente
en el opcional.
Bien, vamos a cerrar.
Хотя o pt.
Punto is present.
Tenemos el método pasar si está presente o no. Este retorna un villano y típicamente lo podemos utilizar
con IF.
Entonces vamos a imprimir.
Trump está presente entonces, por ejemplo, if o pt punto is present.
Entonces, si está presente, podemos hacer algo shout.
Hola.
Más o pte.
Punto Yetta.
Con el método GET podemos obtener el valor.
Ya hemos visto algo en clases anteriores.
En la sección de stream ahora lo vamos a profundizar un poco más y aterrizar bien.
El método GET siempre conveniente utilizar en conjunto con un IF o alguna validación.
Asegurarnos de que esté presente.
Por qué?
Por ejemplo, si fuese un optional empty vacío y el valor no está presente, va a lanzar una excepción,
no Satch Element Exception.
Vamos a levantar.
Hola Andrés.
Se fijan con él y se presenta.
También vimos que tienen método y Is empty para ver si está vacío.
Vamos a imprimir o pt.
Punto is empty.
Veamos.
Va a ser?
Claro, porque está presente entonces is empty.
Lo contrade que is present es la negación.
Después fue mover que estuvimos sepa escribir de una forma mucho más funcional.
De hecho lo podríamos ver ahora mismo.
Esto sería muy equivalente, es decir, equivalente utilizando presiones lanta con lo siguiente acá
mismo o PT.
Punto.
Acá tenemos el método If present.
Si está presente este acá, entonces si está presente podríamos implementar una prisión lanta del tipo
Consumer y hacer algo.
Recuerden que el consumidor se pasa por argumento un valor y hacemos algo con ese valor lo consumimos
valor.
En este caso el string y nuestra expresión lanta por ejemplo Shout.
Hola valor.
Se fijan similar a esto if present.
Acá se emite el valor porque está presente y lo imprimimos.
Hola Andrés.
Ahora bueno, usted saben que ya se puesto abreviar.
De esa forma, bien, acá vimos un ejemplo con un nombre que tiene una referencia Andrés.
Ahora, qué pasa si ese nombre nombre igual a Nuba lo dejamos en Nuh?
Veamos Topete igual.
Oh, genial, vamos a reutilizar las variables o PT y nombre que ya tenemos.
Punto.
Off Nombre Qué va a ocurrir acá?
Ya vimos y expliqué que si se pasa un null en el off lanza una excepción.
Vamos a ver, un pulpo intercepta.
Te fijan un pulpo entre cepillan, entonces hay que evitar utilizar el lof con un nul, una referencia
nula.
El off siempre lo utilizamos cuando estamos seguros 100 por ciento que el objeto no es nulo.
Ahora, si no sabemos o no estamos seguro, podría ser null o puede que no. Hoy utilizamos esta of new
lafe.
De esa forma evitamos el pulpo intercepto.
Ahora si Sotheby, vamos a imprimir o pta.
Veamos qué pasa.
Optional empty es vacío.
A diferencia del que tenemos acá que muestra Andrés, acá muestra empty no tiene valor shout copete
de punto is present.
Si está presente, bueno, va a ser fols.
Shot is empty based trum.
Copete punto.
If present valor shout Hola, valor.
Vamos a ver.
No se debiera ejecutar.
Porque y present?
Si no está presente, nos ejecutÃ, se fijan, no pasa nada a menos que coloquemos por acá or else.
Vamos a cambiar.
Pero ojo, este método sólo está disponible desde lleva 9.
La versión 9 de Yaba, así que se están utilizando ya 8.
Esto de acá no lo pueden invocar porque este método solamente de 9 en adelante.
Bien, entonces si no está presente, entonces si está presente, ejecuta esto.
Si no está presente, ejecutamos un Ramey.
Se acuerdan?
No se recibe ningún argumento y ejecutamos alguna acción.
En caso de que no esté presente, entonces Shout
no está presente o está vacío.
Vamos a ver.
No está presente, entonces es santo argumento.
El primero sí está presente y el segundo si no está presente.
Por eso y present o el camino alternativo el Renate.
Entonces esto sería muy similar a colocar esto.
Voy a copiar este if para no tener que hacerlo nuevo.
Si es exactamente lo mismo que Els, voy a copiar esto acá.
Lo pegamos acá.
No está presente, pero de una forma 100 por ciento funcional, con expresiones danda mucho más limpio,
ordenado.
Además, esto acá se puede optimizar.
Ya sabemos.
Quitábamos Septo.
Y quitábamos esto.
De hecho, voy a bajar acá.
Eso queda mucho mejor.
Bien.
Ahora por supuesto que un off label sirve tanto para nulo como para no nulo.
Por ejemplo, si cambio acá de Nul a John, vamos a ver cómo cambia todo.
Bueno, veamos, debería primero cambiar acá el copete va a ser un optional de John, va a ser thru
el present falls is empty y.
Hola John, acá porque iba embocar preso en Holanda.
El if present.
Y también está acá en el diff.
Hola John.
Hola John fols thru optional de John, se fijan entonces, para resumir el off Nules permite pasar tanto
nulos como no nulos y si es un objeto no nulo, por ejemplo, John, lo que hace retornar un opcional
de su objeto.
Ahora, si el nulo va a retornar un optional vacío empty.
Acá no vamos a ver.
Control click.
Pregunta si igual anulo.
Si es igual, retorna un opcional de vacío.
De lo contrario retorna una instancia opcional con el valor.
Y esta constante es su optional, null o empty.
Bien, veamos otro ejemplo de crear un optional, pero vacío que no es nulo.
En fin, es vacío.
Optional del tipo String Opeth, empty o vacío igual optional punto en solving lo imprimimos Sotheby.
Vamos a imprimir.
Perdón.
Shout o pt.
Empty.
Punto is.
Present.
Va a ser falso porque está vacío.
Y así, si invocamos, por ejemplo, el empty based true, si llamamos al if present or else va a invocar
el or els.
No está presente.
Y lo mismo con el if.
Al final se comporta igual que un Optional of New LaFleur cuando pasamos un null.
Finalmente, lo que retorna es un optional empty.
Lo mismo acto.
Bien, esas son las formas de crear un opcional.
Nos vemos en la siguiente clase.