Bien, continuemos.
Veamos un ejemplo del nuevo entre septón y cómo lo podemos editar con el OPTIONAL.
Bien, vamos a crear los pacato en nuestro proyecto por acá.
Ejemplo.
Package Models Vamos a crear una clase.
Por ejemplo, computador.
Bien, íbamos a tener también otra clase.
O más bien un РАМКАХ primero repositorio.
Primero, una interfaz.
Repositorio.
De hecho, la podríamos reutilizar utilizando Generic Conté perfecto, un solo método.
Un ejemplo simple va a retornar computador
filtras bien por ejemplo por nombre puntico, más bien vamos a importar computador que ya lo tenemos
tipifican un solo método filtrar nada más o buscar como queramos que recibe el nombre y devuelve un
computador en particular.
Lo siguiente crear esta clase.
Entonces vamos a ir al new deada class computador repositorio.
Implementas repositorio del tipo genérico computador
implementamos el método.
Ok, filtras bien.
Computador va a tener un par de atributos Private String el nombre con toda esta bien privé Tink modelo
Lletra Setter.
2 2.
Un constructor.
Los dos podría tener uno vacío.
Y por último, el tuis trenca, en caso de que queramos imprimir el objeto nombre más el modelo.
Gomá Bien, el repositorio volvemos.
Perdón.
Acá vamos a crear un constructor para inicializa dato de ejemplo.
Generad Constructor.
Un atributo brevet.
Listo, computador
DataSource igual.
New Array.
Listo.
Vamos a importar.
Listo.
De.
Ya.
Útil.
DataSource punto ád.
Ni un computador, por ejemplo, a sus roj y el modelo Strix G 512
DataSource punto AD ni un computador MacBook Pro y el modelo MDB K 2 C y o lo que sea, cualquier cosa.
Bien, ahí tenemos un repositorio.
Lo inicializamos.
Bueno, en el atributo, aunque también puede ser acá que incluso mejor acá en el constructor data DataSource.
Igual esto lo voy a cortar.
Bien, y comencemos con la búsqueda.
Cómo sería?
Bueno de forma normal, con un foro usando un foro computador C 2 punto de DataSource if c punto, get
nombre, punto y quarts y nore keys si es igual al valor que pasamos por argumento.
A nombre, entonces nombre si son iguales.
Return si encontramos el equipo, de lo contrario, si no lo encuentra retornamos 1 esta vaca se fijan
entonces, claro, podría ser un valor, un objeto de computador, una instancia o bien una referencia
nula.
Vamos a probarlo.
Vamos a crear en ejemplo cada ejemplo.
Ya Klauss ejemplo repositorio con el método Main.
Vamos a crear la instancia de servicio repositorio del tipo computador
repositorio igual new computador repositorio.
Computador vamos a llamar pecé igual repositorio punto filtrar, por ejemplo, buscar asus rojo perfecto
shout vamos a imprimir ps punto get nombre.
Vamos a probar.
Levantamos.
A?
Funciona perfecto.
Encuentra lo busca y retorna a la instancia.
Pero qué pasa si colocamos a sus roj o solamente a sus.
Por ejemplo, ásus.
Lanza la excepción en Nopueden Trecet y eso es justamente lo que queremos evitar mediante el uso de
optional.
Estas situaciones lo estamos implementando con un repositorio ArrayList, pero esto podría venir de
hace rato y lo podría manejar de igual forma.
Hacemos una consulta si encontré el registro, creamos el objeto computador y pasamos los datos del
registro.
De lo contrario se devuelve un NULL o utilizando GÜN o readme como internet también.
Misma situación.
Y acá es inevitable lo Nippon 13:8.
Cuando filtramos algún dato que no existe en nuestra información, en nuestra aplicación, es algo que
tenemos que lidiar y poder manejar de alguna forma.
Entonces lo más típico que podemos hacer?
Bueno preguntar.
IF Psé, si es distinto en un perfecto imprimimos acá es Shout.
No se ven con otro.
Ahí lo solucionamos utilizando neuf y validando.
Nos encontró.
Roj.
Bien, funciona, así funciona, pero que esté realizando validaciones entonces con el API optional
y con programación funcional.
Pero este trabajo se hace mucho más simple y con diferentes caminos, opciones que podemos ir entregando
al usuario.
Hagamos el cambio, entonces nos vamos a ir a la interfaz lo primero.
Ahora, en vez de computador va a devolver un not jonan de computador.
Vamos a importar de llebaba útil.
Vamos a ir a la implementación.
Computador repositorio acá.
Lo mismo optional
importamos de llevao útil.
Bien.
Y acá devolvemos optional punto.
Off.
Lo encontramos devuelve una opcional del objeto.
De lo contrario, optional punto, empty vacío.
Ya estamos trabajando con el lápiz, vamos al ejemplo, al otro ejemplo acá.
Acá sería optional de computador, psé.
Vamos a importar.
Y acá modificamos entonces, en vez de distinto nul sería punto is present de que devuelve un volcano.
Entonces, si está presente, perfecto, llega.
Invocamos el método quieto el objeto get punto guet nombre o el Tustin Hoggett modelo.
Si me dicen bien.
Me quitaré el toString porque es automático.
Ahora, qué pasa si modificamos este ejemplo completamente, lo vamos a comentar y en vez de hacer esto,
simplemente esto también lo voy a comentar.
Sería repositorio punto filtrar asus rog punto if present.
Entonces, si está presente hacer algo ahora si están usando ya 9 o superior y present or elso system
punto out.
2 punto punto print.
De lo contrario.
Nos encontró.
Voy a bajar.
Se fija la diferencia de forma funcional versus de forma secuencial o normal, utilizando LIF.
Hay un cambio rotundo y nos aseguramos de que nunca ocurrir.
El famoso порно intercepto.
Incluso podríamos utilizar bastante más el ejemplo si nos vamos a computador repositorio acá.
Esto lo podemos comentar y podríamos utilizar expresiones Lanta, entonces Rotor la lista DataSource
Punto Stream lo convertimos a un stream.
Punto Filter Acá se emite el objeto computador, la flecha.
Y esto acá.
El predicado.
Voy a bajar.
Punto.
Obtenemos uno solo con el fin.
First ó find n.
Recuerden que devuelve un optional.
Mucho más simple, con programación funcional.
Estas líneas versus estas de acá.
Recuerden que Find First devuelve un optional, devuelve el primer elemento que se encuentra como un
opcional.
O bien una opción al vacío.
En caso de que nos encuentre en el stream un ente.
Por lo tanto.
Esto sería exactamente igual a esto de acá.
Pero más optimizado.
Lo vamos a probar.
Lo tenemos incluso también podríamos utilizar en vez de equals acá.
Y cual sino de qué es contains?
Ahora, si queremos que sea independiente, mayúscula y minúscula, convertimos el nombre a mayúscula
o minúscula.
Y este también 12.6 tú, tú longworth cais los dos a minúscula.
Voy a copiar y el nombre también.
Ahora volvemos.
Y pueden buscar solamente por sus.
Y diré contrar al mismo ásus rojo ó por rojo.
Se fijan, acá está en minúscula, lo encuentra diciendo que está en mayúscula.
Entonces queda mucho mejor.
Nada más.
Continuamos en la siguiente clase.