1
00:00:00,180 --> 00:00:02,940
Veamos un poco más sobre el happy opcional opcional.

2
00:00:03,240 --> 00:00:04,380
Vamos a cerrar acá.

3
00:00:04,530 --> 00:00:08,940
Nos vamos a ir a ejemplo String Filter Single que lo estamos utilizando.

4
00:00:09,060 --> 00:00:15,960
Acá estamos utilizando el usuario, pero el que está dentro de un opcional, un objeto que envuelve,

5
00:00:16,050 --> 00:00:17,460
anida al objeto usuario.

6
00:00:17,520 --> 00:00:22,890
Para agregar más funcionalidad, por ejemplo, cuando buscamos algún registro, un objeto dentro de

7
00:00:22,890 --> 00:00:27,900
una colección utilizando la pís trim, por ejemplo, o también en la base dato bueno podría ser que

8
00:00:27,900 --> 00:00:31,380
nos encuentre, que no exista el usuario y podría devolver un NULL.

9
00:00:31,500 --> 00:00:37,290
Y el problema es que cuando retorna NULL podríamos correr el riesgo de invocar un método y que lance

10
00:00:37,290 --> 00:00:39,090
la acepción null pointer exception.

11
00:00:39,180 --> 00:00:45,330
Justamente lo que hace el opcional es dar una capa de atracción por sobre el objeto para evitar el pulpo

12
00:00:45,330 --> 00:00:45,960
interceptor.

13
00:00:46,050 --> 00:00:52,080
De esa forma, saber y validar si el objeto fue encontrado o no fue encontrado con métodos de ayuda.

14
00:00:52,140 --> 00:01:00,330
Por ejemplo, si está presente o si está vacío o nos encontró o dar alguna alternativa en caso de que

15
00:01:00,330 --> 00:01:00,930
no exista.

16
00:01:01,020 --> 00:01:06,750
En vez de lanzar la acepción poder, por ejemplo, devolver un objeto por defecto o algún valor por

17
00:01:06,750 --> 00:01:11,670
defecto, ya sea mediante una Tsun landa o mediante un método común y corriente.

18
00:01:11,770 --> 00:01:13,020
Bueno, y eso es lo que creo ver ahora.

19
00:01:13,140 --> 00:01:16,420
De qué se trata un poquito más esta API opcional opcional.

20
00:01:16,800 --> 00:01:20,370
Después igual creo que lo vamos a hacer más en detalle, pero por ahora lo más básico.

21
00:01:20,550 --> 00:01:21,180
Comencemos.

22
00:01:21,570 --> 00:01:24,090
Vamos a buscar por Pepe X.

23
00:01:24,270 --> 00:01:26,850
Entonces acá en vez de Pepe le colocamos X.

24
00:01:26,940 --> 00:01:27,960
Obviamente no existe.

25
00:01:28,260 --> 00:01:33,120
Entonces va a lanzar una excepción de que no encontró el objeto.

26
00:01:33,240 --> 00:01:34,140
El elemento.

27
00:01:39,920 --> 00:01:47,630
No, Satch Element Exception se fijan, no hay un valor presente dentro de la opcional, no existe ahora,

28
00:01:47,630 --> 00:01:49,190
por supuesto, si colocamos p.p..

29
00:01:50,630 --> 00:01:52,130
Lo encuentra bien?

30
00:01:52,190 --> 00:01:57,380
Hay muchas formas de manejar esto dentro de lo opcional, como por ejemplo en vez de utilizar el método

31
00:01:57,380 --> 00:02:05,540
GET, utilizar el método OR que muy similar, pero damos una alternativa, entonces or acá tenemos diferente

32
00:02:05,540 --> 00:02:06,110
forma.

33
00:02:06,680 --> 00:02:12,650
El más típico or else, por ejemplo, or es, entonces si se encuentra, lo obtenemos.

34
00:02:12,740 --> 00:02:16,250
Si no se encuentra, devolvemos su valor por defecto.

35
00:02:16,430 --> 00:02:27,510
Por ejemplo, otro objeto usuario acá dice usuario otro new usuario John Do.

36
00:02:27,950 --> 00:02:31,130
Por ejemplo, si no se encuentra que devuelva a Johnno.

37
00:02:32,990 --> 00:02:33,400
Veamos.

38
00:02:34,160 --> 00:02:42,560
Acá se encuentra Pepe, pero colocamos Pepe V o lo que sea, devuelve a Johnno o bien.

39
00:02:43,570 --> 00:02:44,920
Podríamos colocar Nule?

40
00:02:45,160 --> 00:02:49,050
Voy a cortar Nury también un objeto nulo.

41
00:02:51,930 --> 00:02:58,170
Ahora no recomendable, claro, porque corremos el riesgo de caer en el núcleo intercepten, por ejemplo,

42
00:02:58,200 --> 00:03:00,210
pun to IET nombre.

43
00:03:01,740 --> 00:03:04,170
Si lo invocamos, nul po intercepto.

44
00:03:05,310 --> 00:03:08,160
Y justamente lo que trata de evitar esta happy opcional.

45
00:03:09,000 --> 00:03:16,290
Entonces por eso en vez de Nour voy a pegar un objeto usuario por defecto, ya que si nunca vamos a

46
00:03:16,410 --> 00:03:17,970
obtener un pulpo intercepto.

47
00:03:20,710 --> 00:03:24,910
John Independientes se lo encuentra cuando lo encuentra acá lo encuentra.

48
00:03:25,930 --> 00:03:30,520
A Pepe muestra Pepe Mena se fija en Pepe acá, sino a John.

49
00:03:30,580 --> 00:03:32,590
También puedes envienme una presión Lanta.

50
00:03:32,770 --> 00:03:39,400
Entonces, en vez de utilizar el oro Hells simplemente bueno, lo voy a comentar para que lo tenga,

51
00:03:39,880 --> 00:03:40,660
lo voy a copiar.

52
00:03:44,220 --> 00:03:49,110
Entonces por acá tenemos el ghetto y acá pasamos un su playa.

53
00:03:50,250 --> 00:03:51,180
Una prisión lanta?

54
00:03:51,390 --> 00:03:56,790
Recuerden que el tipo su player no recibe argumento, pero siempre devuelve un valor.

55
00:03:56,880 --> 00:03:58,170
Es como una fábrica de objeto.

56
00:03:58,410 --> 00:04:00,600
Acá queremos la instancia y devolvemos el objeto.

57
00:04:01,800 --> 00:04:03,960
Mismo resultado, pero usando una presión lanta.

58
00:04:05,550 --> 00:04:09,690
Entonces, si se encuentra Pepe, si no va a mostrar Johnno.

59
00:04:14,700 --> 00:04:15,180
Tallón.

60
00:04:21,060 --> 00:04:21,720
Voy a copiar.

61
00:04:27,230 --> 00:04:28,070
Puede quitar inquieto?

62
00:04:29,280 --> 00:04:34,670
Me voy a quitar esto de quitar y usted me tremos él?

63
00:04:34,840 --> 00:04:40,430
Or él fru lánzale acepcion o bien or el fro y lanzar una acepción personalizada.

64
00:04:40,530 --> 00:04:45,830
Acá podemos lanzar cualquier excepción que queramos pro-pia ahora este de acá.

65
00:04:47,490 --> 00:04:50,550
Si lo encuentra, devuelve el objeto.

66
00:04:51,710 --> 00:04:55,780
Tal como antes, si no lanza la excepción, cuál?

67
00:04:55,910 --> 00:04:57,560
Bueno, la misma que entrante.

68
00:04:58,280 --> 00:05:03,480
No Sach Element, excepto por lo tanto Or el FRU es bastante similar al Gillet.

69
00:05:03,770 --> 00:05:08,180
Entonces, si el valor está presente, retorna el valor, de lo contrario lanza la excepción.

70
00:05:08,270 --> 00:05:09,830
No Satch Element excepto.

71
00:05:11,650 --> 00:05:11,950
Nyet.

72
00:05:13,720 --> 00:05:17,410
También, si el valor es presente, devuelve el valor.

73
00:05:17,510 --> 00:05:19,000
Entre contrario, la excepción.

74
00:05:19,510 --> 00:05:23,980
Ahora bien, cuando utilizamos el objeto para evitar esta acepción, también podemos utilizar el if.

75
00:05:24,100 --> 00:05:27,400
Hacer uso de métodos kelpers del opcional.

76
00:05:28,590 --> 00:05:35,910
Veamos IFF usuario nuestra opcional punto is present is present.

77
00:05:36,210 --> 00:05:37,380
Acá tenemos dos formas.

78
00:05:38,420 --> 00:05:44,350
Expresen y lo contrario si está vacía, si está vacío o si está presente, pero al final es lo mismo.

79
00:05:44,590 --> 00:05:46,270
Uno es la negación del otro.

80
00:05:46,690 --> 00:05:51,280
Ahora Is empty sólo está disponible de la versión yaba 11 en adelante.

81
00:05:51,580 --> 00:05:55,450
Si están utilizando Yaba 8 is empty no va a existir.

82
00:05:55,780 --> 00:05:57,480
Entonces, por ejemplo, is present.

83
00:05:58,480 --> 00:05:59,910
Si está presente, perfecto.

84
00:06:01,650 --> 00:06:05,850
Imprimimos el objeto con el objeto, es decir, lo obtenemos y lo podemos utilizar.

85
00:06:06,720 --> 00:06:07,650
Que nombre?

86
00:06:07,890 --> 00:06:08,940
Guet, apellido.

87
00:06:09,060 --> 00:06:10,500
Lo utilizamos como queramos.

88
00:06:11,280 --> 00:06:13,950
Els Shout

89
00:06:18,420 --> 00:06:19,650
nos encontró el objeto.

90
00:06:24,220 --> 00:06:30,370
PBX se fijan yendo lanza la excepción, nos encontró el objeto, lo estamos manejando con expresa.

91
00:06:31,490 --> 00:06:32,000
PP.

92
00:06:33,480 --> 00:06:35,160
Va a mostrar a PP los datos?

93
00:06:35,670 --> 00:06:37,260
Pepe el nombre Pepe.

94
00:06:37,560 --> 00:06:39,210
Entonces es muy importante is present.

95
00:06:39,510 --> 00:06:44,220
Ahora se están utilizando Java 11 en adelante con la negación.

96
00:06:45,130 --> 00:06:46,090
Is empty.

97
00:06:47,980 --> 00:06:50,830
Se distinto a vacío, por eso negamos.

98
00:06:52,270 --> 00:06:55,370
Llegamos exactamente el mismo resultado que Is present.

99
00:06:57,480 --> 00:06:59,810
Bien, de esta forma es mejor usar is present.

100
00:07:00,420 --> 00:07:03,330
Incluso acá nos dice mejor reemplazar con y presenta.

101
00:07:04,570 --> 00:07:05,410
Nos amamos de esa forma.

102
00:07:05,990 --> 00:07:10,750
Llega tenemos Filter Single 2, creo que también estamos utilizando.

103
00:07:10,780 --> 00:07:13,270
Claro, perfecto, acá claro.

104
00:07:13,280 --> 00:07:14,710
Qué pasa con el Heidy 3?

105
00:07:14,830 --> 00:07:20,230
Existe, pero si colocamos el Heidy 6 va a lanzar el error.

106
00:07:22,440 --> 00:07:26,400
Entonces acá podría manejarlo de una forma, quizás un poco más segura.

107
00:07:27,760 --> 00:07:30,340
Ya saben, diferente forma como la que vivimos.

108
00:07:30,460 --> 00:07:36,270
Pero acá, para simplificar, podemos utilizar or es guet.

109
00:07:37,440 --> 00:07:38,310
Con una empresa alta.

110
00:07:47,430 --> 00:07:48,060
Hay tanto.

111
00:07:52,090 --> 00:07:57,730
Johnno Ahora si existe el 4 Pepe Mena.

112
00:08:00,930 --> 00:08:01,530
Pepe Mena.

113
00:08:02,530 --> 00:08:06,340
Ahora, si me quieren utilizar el oro, el skeet con algún valor por defecto.

114
00:08:06,430 --> 00:08:13,180
Bueno, pueden utilizar esta forma con el Life is present con algún mensaje, pero acá tendrán que modificar

115
00:08:13,180 --> 00:08:14,620
un poco esto de acá.

116
00:08:14,710 --> 00:08:17,170
Entonces que devuelva el opcional.

117
00:08:17,590 --> 00:08:22,390
Por lo tanto, esto acá lo invocamos fuera del stream tal como lo tenemos acá.

118
00:08:22,480 --> 00:08:24,760
Una breve introducción al API opcional.

119
00:08:24,820 --> 00:08:26,590
Nos vemos en la siguiente clase.
