En esta clase vamos a hacer una pequeña mejora a nuestro código, específicamente en la clase Service
Service implemente y también en la interfaz.
Entonces la idea es modificar, obtener por Heidy o Macky, modificar e implementar otro método obtener
predi, pero utilizando el API opcional opcional de Java 8 que nos facilita mucho traja con objeto podemos
encapsular el objeto y dentro de este optional validar si el objeto existe, si distinto, null si está
presente y manejar de forma simple caminos alternativo.
Por ejemplo, en caso de que no venga, en caso de que se anul o no esté presente el objeto, retornamos
una excepción.
Es decir, lanzamos una excepción como otra forma.
En vez de implementar el IF de una forma más elegante, usando espresion el lanta o función de flecha,
en fin, características propias de ya 8.
Entonces lo primero nos vamos a la interfaz.
Vamos a copiar este método tal cual.
Pero acá vamos a agregar optional,
importamos optional.
Bueno, es de yaba útil, es decir, es propio de Yaba, no tiene nada que ver.
Sprit es solamente utilizar características propia de Yot, entonces como un grapar que anida el objeto
o lo contiene y nos permite verificar si el objeto es distinto numro o si está presente.
En fin, un montón de características y métodos vamos a importar y le vamos a cambiar el nombre a obtener
por Heidy acá optional guardamos.
Bueno, va a marcar un error acá en la clase que tenemos que implementar.
Bueno, agreguemos este método perfecto y vamos a ir a buscar el objeto.
Entonces, por ejemplo, copiamos esto tal cual lo pegamos acá.
Usuario acá, usuario igual.
Quitamos el interés, eso incluso con this.
Pero bueno, es opcional.
Entonces usamos o tener por allí de esta clase.
Lo estamos reutilizando.
Pasamos a la idea, obtenemos el usuario, pero el usuario puede ser el usuario del tipo usuario.
O puede ser un objeto nulo.
Y acá usando optional punto.
Be nü lable.
De acá pasamos el usuario.
Ahora voy a explicar lo que hacemos es de forma estática invocar el método off.
El método off lo que hace es convertir este objeto usuario que tenemos independientes en nulo o no lo
convertimos en un tipo opcional options.
Y tenemos dos métodos el método off acá el off y el off anularé le ofrece el off no acepta nulo.
Entonces acá podríamos preguntar si igual a nulo lo pasamos como vacío y si no retornamos el optional
off del objeto usuario.
Pero esto mismo lo podemos hacer en un solo método, por ejemplo optional off nü lable.
Qué hacer?
Preguntar si el valor es nulo ya.
Entonces, si el usuario nulo va a retornar un nocturnal empty, es decir, vacío, de lo contrario
va a retornar un optional off, es decir, convierte el objeto usuario en un opcional.
Ya bien.
Entonces ya convertimos en un optional de usuario.
Guardamos.
Entonces ahora nos vamos al controlador por acá.
Esto ya lo podemos comentar.
Ya no es necesario.
Por qué?
Esto también.
Entonces, ahora usuarios lo vamos a obtener de otra forma.
Vamos a copiar, lo pegamos acá abajo.
Pero el obtener.
Bien, entonces cómo tengo al usuario?
El objeto opcional 3 varios métodos obtener obtiene el usuario por ejemplo or else si no otro usuario
ya sea null o puedo manejar un usuario por defecto.
En fin.
Diferentes opciones acá puedo manejar una versión lanta.
Acá podemos lanzar una excepción o lanzar una excepción más personalizada.
Entonces vamos a elegir por el thru lanzar una opción en caso de que sea vacío el objeto de que sea
empty.
Y acá dice retorna el objeto, que no es nulo el valor, en este caso el usuario, de lo contrario retorna
una excepción por defecto no encuentra el elemento exception.
Si el valor no está presente, nos hach element exception bien, pero la idea de lanzar nuestra propia
sección de forma personalizada.
Entonces vamos a seleccionar este acá.
De acá una presión lauta, nuestra expresión landa o función de flecha no tiene argumento, entonces
paréntesis vacío, una función de flecha.
Y acá simplemente creamos la instancia y automáticamente se lanza new usuario.
No he encontrado Heidy punto string.
Se fijan?
Entonces es más simple.
Evitamos el IF y lo hacemos de una forma utilizando YABA 8 ya presiona el lambda y por supuesto el API
opcional.
Otra forma de implementarlo ahora.
Por supuesto, el resultado es el mismo.
No cambia lo que cambia la implementación de cómo lo implementamos por debajo el código.
Pero la funcionalidad es igual.
Volvemos a probar.
Se fijan el resultado exactamente el mismo día 7 10 usuarios he encontrado diferentes alternativas que
podemos implementar en Ya continuamos en la siguiente clase.