Bien, veamos otra variante el or els fru, que lanza un excepción en caso de que nos encuentre el objeto
o el valor.
Bueno, a veces puede que nuestra aplicación necesite ser un poco más estricta.
Es decir, si el objeto realmente no existe, no podemos continuar con la ejecución y necesitamos hacer
alguna excepción para manejarla de alguna forma.
Para eso utilizamos el método OR Stroud.
Vamos a ver el ejemplo.
Vamos a copiar y pegar para no modificar este lo copiamos, lo pegamos y le colocamos 0.
Éste lo cerramos.
Vamos a quitar esto de acá.
Esto lo quitamos.
Dejamos solamente el primero y le quitamos.
No tiene valor por defecto.
Simplemente esto se quita.
Or es 0u.
Si no existe, lanzo una escepción.
Vamos a ver.
Bueno, Rozz, que existe, por lo tanto está todo bien.
Va a mostrar el valor.
Seguro que vamos Rozz 2.
No, Satch L.M Exception no encuentra, por lo tanto, como no está presente el valor, lanza esta acepción
por defecto, de hecho muy similar al gueto.
Si colocamos GET, vamos a ver que el mismo resultado.
El único problema es que el nyet sólo por un tema nombre invite enfocarlo para obtener el valor.
Pero si no se encuentra, lanza la excepción.
Entonces, cómo se explica la clase anterior?
Va en contra el patrón de diseño Optional Dcho aka Notice Happy, no una nota del API.
De preferencia o alternativa, utilizar el método OR es thru que mucho más descriptivo, además que
el método GET como rumor lo leído por ahí puede que en algún momento en el API de Java en próximas versiones
quede como de pruébatela y en vez de utilizar el GET se tenga que utilizar siempre el OR el 0 ya.
Pero lo importante es que sepan que el GET cuando lo vayan a utilizar es mediante el IF, es decir,
con él is present.
Si está presente dentro del if invocamos el GET y el OR.
El 0 lo invocamos cuando necesitemos lanzar esta opción en caso de que nos encuentre para hacer un poco
más estricto, pero funcionalmente el GET y el OR.
El FRU es lo mismo.
Solamente el tema va por el nombre.
Bien, pero tenemos otra variante del OR.
El Froot que recibe una persona Lanta y acá podemos personalizar el lanzamiento acepcion por ejemplo
es un su player legalizamos.
Por lo tanto realiza un ratón, retorna un new AI legal Stadt excepto por debajo se lanza por debajo,
realiza un FRU de este objeto que estamos devolviendo.
En este método en esta prisión lanta.
Pero bueno, acá podemos utilizar reference método.
Recuerden que podemos quitar esto y mediante el nombre de la clase si lo paréntesis y colocar dos puntos
punto new.
Entonces, de esa forma estamos personalizando.
Ahora es otra acepción.
Y así como estamos utilizando hoy, eliga el esté deception puede ser cualquier otra.
Incluso una propia, nuestra personalizada.
Bien, entonces ahora levantamos.
Hay liga al Stet?
Entonces después con un trae un catch en alguna parte lo pudieron manejar.
Pero si está todo bien.
Si el elemento viene en el optional, está perfecto.
No lanza ningún error.
Veamos un ejemplo también acá mismo para complementar a partir de un string un nombre de archivo, obtener
la extensión utilizando el optional espresion el Landau de una forma más funcional.
Entonces street estension igual optional punto off no Lauper.
También podría ser off.
Vamos a colocar el nombre documento punto PDF, por ejemplo.
Bien, y quiero obtener el punto PDF.
Cómo lo podemos hacer?
Bueno, lo primero es filtrar.
Es decir, porque el optional, al igual que el stream, también tiene el filter y el mapa.
Después vamos a ver un ejemplo más completo pero con filter.
Recuerden que acá se pasa una presión lanta del tipo predicad el objeto a de archivo y preguntamos si
a punto contains.
Recuerden que el tipo string el carácter punto perfecto y si lo contiene lo modificamos map y otro importante.
Qué pasa si no lo contiene?
Bueno, el filter no lo filtra.
Por lo tanto, el optional Baker vacío y simplemente no valen nada.
Entonces, al estar vacío, el MAP no se va a aplicar a A de archivo a punto Sub Street.
Buscamos la última posición donde se encuentra el punto que sería la extensión en el nombre del archivo.
Mejor vamos a cortar esto y lo dejamos acá Strength Archivo Archivo de acá pasamos el archivo y acá
sus tric punto last index off colocamos punto.
Entonces acá contrar el índice de la última posición donde se encuentra el punto de acá le sumamos +1
+1 para excluir el punto y aquí me faltaría.
Bueno, si no, si es vacío or el fru.
Entonces somos stricto.
Si todo sale bien, perfecto, obtenemos la atención.
Si no, las la sección South Estension, vamos a probar.
PDF Veamos si no tiene el punto.
Se fijan, no obstante, Element Exception por qué no está presente el valor estricto?
No sacamos nada con analizar un nombre archivo si no contiene tensión.
Ya hay tal ejemplo, se fijan usando programación funcional.
Entonces ya saben que el optional también soporta el filter, el map para modificar el valor que contiene
el optional.
Bueno, de todas forma la próxima clase vamos a ver más ejemplo sobre Filter y el map.
Quedamos atacada.
Nos vemos.