1
00:00:00,210 --> 00:00:06,810
Bien, veamos otra variante el or els fru, que lanza un excepción en caso de que nos encuentre el objeto

2
00:00:06,930 --> 00:00:07,500
o el valor.

3
00:00:07,680 --> 00:00:11,820
Bueno, a veces puede que nuestra aplicación necesite ser un poco más estricta.

4
00:00:11,940 --> 00:00:18,120
Es decir, si el objeto realmente no existe, no podemos continuar con la ejecución y necesitamos hacer

5
00:00:18,210 --> 00:00:20,400
alguna excepción para manejarla de alguna forma.

6
00:00:20,490 --> 00:00:24,300
Para eso utilizamos el método OR Stroud.

7
00:00:24,690 --> 00:00:25,890
Vamos a ver el ejemplo.

8
00:00:25,950 --> 00:00:32,880
Vamos a copiar y pegar para no modificar este lo copiamos, lo pegamos y le colocamos 0.

9
00:00:35,670 --> 00:00:36,570
Éste lo cerramos.

10
00:00:37,050 --> 00:00:38,550
Vamos a quitar esto de acá.

11
00:00:40,560 --> 00:00:41,610
Esto lo quitamos.

12
00:00:41,670 --> 00:00:44,640
Dejamos solamente el primero y le quitamos.

13
00:00:44,820 --> 00:00:46,320
No tiene valor por defecto.

14
00:00:47,210 --> 00:00:49,580
Simplemente esto se quita.

15
00:00:50,660 --> 00:00:52,400
Or es 0u.

16
00:00:54,410 --> 00:00:56,090
Si no existe, lanzo una escepción.

17
00:00:56,300 --> 00:00:56,900
Vamos a ver.

18
00:00:57,020 --> 00:01:00,170
Bueno, Rozz, que existe, por lo tanto está todo bien.

19
00:01:00,290 --> 00:01:01,550
Va a mostrar el valor.

20
00:01:02,640 --> 00:01:04,170
Seguro que vamos Rozz 2.

21
00:01:05,840 --> 00:01:11,870
No, Satch L.M Exception no encuentra, por lo tanto, como no está presente el valor, lanza esta acepción

22
00:01:11,870 --> 00:01:14,520
por defecto, de hecho muy similar al gueto.

23
00:01:15,200 --> 00:01:18,500
Si colocamos GET, vamos a ver que el mismo resultado.

24
00:01:21,900 --> 00:01:27,060
El único problema es que el nyet sólo por un tema nombre invite enfocarlo para obtener el valor.

25
00:01:27,150 --> 00:01:29,220
Pero si no se encuentra, lanza la excepción.

26
00:01:29,340 --> 00:01:30,900
Entonces, cómo se explica la clase anterior?

27
00:01:31,020 --> 00:01:38,220
Va en contra el patrón de diseño Optional Dcho aka Notice Happy, no una nota del API.

28
00:01:39,220 --> 00:01:45,250
De preferencia o alternativa, utilizar el método OR es thru que mucho más descriptivo, además que

29
00:01:45,250 --> 00:01:52,390
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

30
00:01:52,420 --> 00:01:58,040
quede como de pruébatela y en vez de utilizar el GET se tenga que utilizar siempre el OR el 0 ya.

31
00:01:58,090 --> 00:02:03,760
Pero lo importante es que sepan que el GET cuando lo vayan a utilizar es mediante el IF, es decir,

32
00:02:03,760 --> 00:02:04,750
con él is present.

33
00:02:04,750 --> 00:02:09,160
Si está presente dentro del if invocamos el GET y el OR.

34
00:02:09,250 --> 00:02:15,970
El 0 lo invocamos cuando necesitemos lanzar esta opción en caso de que nos encuentre para hacer un poco

35
00:02:15,970 --> 00:02:20,340
más estricto, pero funcionalmente el GET y el OR.

36
00:02:20,440 --> 00:02:21,670
El FRU es lo mismo.

37
00:02:21,760 --> 00:02:24,310
Solamente el tema va por el nombre.

38
00:02:24,460 --> 00:02:26,640
Bien, pero tenemos otra variante del OR.

39
00:02:26,740 --> 00:02:33,220
El Froot que recibe una persona Lanta y acá podemos personalizar el lanzamiento acepcion por ejemplo

40
00:02:33,430 --> 00:02:36,310
es un su player legalizamos.

41
00:02:36,400 --> 00:02:46,980
Por lo tanto realiza un ratón, retorna un new AI legal Stadt excepto por debajo se lanza por debajo,

42
00:02:46,990 --> 00:02:50,590
realiza un FRU de este objeto que estamos devolviendo.

43
00:02:50,710 --> 00:02:52,600
En este método en esta prisión lanta.

44
00:02:52,780 --> 00:02:55,930
Pero bueno, acá podemos utilizar reference método.

45
00:02:56,200 --> 00:03:02,650
Recuerden que podemos quitar esto y mediante el nombre de la clase si lo paréntesis y colocar dos puntos

46
00:03:02,680 --> 00:03:03,790
punto new.

47
00:03:05,300 --> 00:03:07,010
Entonces, de esa forma estamos personalizando.

48
00:03:07,130 --> 00:03:08,390
Ahora es otra acepción.

49
00:03:08,570 --> 00:03:12,320
Y así como estamos utilizando hoy, eliga el esté deception puede ser cualquier otra.

50
00:03:12,410 --> 00:03:14,600
Incluso una propia, nuestra personalizada.

51
00:03:15,530 --> 00:03:17,450
Bien, entonces ahora levantamos.

52
00:03:20,010 --> 00:03:20,960
Hay liga al Stet?

53
00:03:22,080 --> 00:03:25,980
Entonces después con un trae un catch en alguna parte lo pudieron manejar.

54
00:03:26,580 --> 00:03:27,570
Pero si está todo bien.

55
00:03:27,690 --> 00:03:31,260
Si el elemento viene en el optional, está perfecto.

56
00:03:31,380 --> 00:03:32,400
No lanza ningún error.

57
00:03:33,000 --> 00:03:40,350
Veamos un ejemplo también acá mismo para complementar a partir de un string un nombre de archivo, obtener

58
00:03:40,440 --> 00:03:45,360
la extensión utilizando el optional espresion el Landau de una forma más funcional.

59
00:03:45,510 --> 00:03:53,590
Entonces street estension igual optional punto off no Lauper.

60
00:03:53,910 --> 00:03:55,140
También podría ser off.

61
00:03:56,340 --> 00:04:01,820
Vamos a colocar el nombre documento punto PDF, por ejemplo.

62
00:04:02,160 --> 00:04:04,350
Bien, y quiero obtener el punto PDF.

63
00:04:04,560 --> 00:04:05,430
Cómo lo podemos hacer?

64
00:04:05,580 --> 00:04:07,530
Bueno, lo primero es filtrar.

65
00:04:07,710 --> 00:04:13,410
Es decir, porque el optional, al igual que el stream, también tiene el filter y el mapa.

66
00:04:13,650 --> 00:04:16,780
Después vamos a ver un ejemplo más completo pero con filter.

67
00:04:17,820 --> 00:04:26,490
Recuerden que acá se pasa una presión lanta del tipo predicad el objeto a de archivo y preguntamos si

68
00:04:26,580 --> 00:04:27,970
a punto contains.

69
00:04:28,170 --> 00:04:38,820
Recuerden que el tipo string el carácter punto perfecto y si lo contiene lo modificamos map y otro importante.

70
00:04:38,850 --> 00:04:40,080
Qué pasa si no lo contiene?

71
00:04:40,230 --> 00:04:42,730
Bueno, el filter no lo filtra.

72
00:04:42,750 --> 00:04:47,190
Por lo tanto, el optional Baker vacío y simplemente no valen nada.

73
00:04:47,400 --> 00:04:54,390
Entonces, al estar vacío, el MAP no se va a aplicar a A de archivo a punto Sub Street.

74
00:04:55,890 --> 00:05:01,860
Buscamos la última posición donde se encuentra el punto que sería la extensión en el nombre del archivo.

75
00:05:03,540 --> 00:05:15,330
Mejor vamos a cortar esto y lo dejamos acá Strength Archivo Archivo de acá pasamos el archivo y acá

76
00:05:15,390 --> 00:05:20,790
sus tric punto last index off colocamos punto.

77
00:05:21,030 --> 00:05:28,170
Entonces acá contrar el índice de la última posición donde se encuentra el punto de acá le sumamos +1

78
00:05:29,670 --> 00:05:32,610
+1 para excluir el punto y aquí me faltaría.

79
00:05:32,760 --> 00:05:35,850
Bueno, si no, si es vacío or el fru.

80
00:05:36,840 --> 00:05:37,800
Entonces somos stricto.

81
00:05:38,340 --> 00:05:40,710
Si todo sale bien, perfecto, obtenemos la atención.

82
00:05:40,740 --> 00:05:46,110
Si no, las la sección South Estension, vamos a probar.

83
00:05:49,940 --> 00:05:52,610
PDF Veamos si no tiene el punto.

84
00:05:58,230 --> 00:06:03,520
Se fijan, no obstante, Element Exception por qué no está presente el valor estricto?

85
00:06:03,660 --> 00:06:08,670
No sacamos nada con analizar un nombre archivo si no contiene tensión.

86
00:06:11,650 --> 00:06:15,790
Ya hay tal ejemplo, se fijan usando programación funcional.

87
00:06:16,060 --> 00:06:23,590
Entonces ya saben que el optional también soporta el filter, el map para modificar el valor que contiene

88
00:06:23,680 --> 00:06:24,430
el optional.

89
00:06:24,610 --> 00:06:29,980
Bueno, de todas forma la próxima clase vamos a ver más ejemplo sobre Filter y el map.

90
00:06:30,190 --> 00:06:31,060
Quedamos atacada.

91
00:06:31,180 --> 00:06:31,900
Nos vemos.
