1
00:00:00,300 --> 00:00:04,710
Bien, en esta clase vamos a solucionar algunos problemas que podríamos tener algunos errores, por

2
00:00:04,710 --> 00:00:06,590
ejemplo, si ejecutamos ejemplo.

3
00:00:06,600 --> 00:00:11,610
TOMÓVIL Bueno, recuerden que este primer ejemplo no tiene el tipo automóvil.

4
00:00:11,700 --> 00:00:15,330
Por ejemplo, si es camioneta, si es esté hecho, empañen.

5
00:00:15,420 --> 00:00:16,440
En fin, no tiene.

6
00:00:16,560 --> 00:00:18,330
Entonces debería dar un error.

7
00:00:18,390 --> 00:00:20,130
Por ejemplo, si levantamos.

8
00:00:21,680 --> 00:00:28,220
Se fijan un nul point 3 con el típico error de yaba cuando un objeto es nulo y trata de invocar un método.

9
00:00:28,310 --> 00:00:29,180
Pero dónde ocurre?

10
00:00:29,270 --> 00:00:30,280
Bueno, veamos.

11
00:00:30,470 --> 00:00:32,660
Línea 150 en la clase automóvil.

12
00:00:33,410 --> 00:00:36,050
Bueno, sin duda es en ver detalles por acá.

13
00:00:36,260 --> 00:00:44,860
150 tipo, claro, porque de tipo en nul, en ejemplo tomóvil y tratar de invocar get descripción da

14
00:00:44,870 --> 00:00:45,900
el error, por supuesto.

15
00:00:46,050 --> 00:00:48,350
Entonces hay soluciones diferentes.

16
00:00:48,380 --> 00:00:55,700
Por ejemplo, podríamos asignar en el ejemplo tomóvil por acá el tipo tal como lo tenemos acá se tipo

17
00:00:55,820 --> 00:00:58,210
se fijan hatchback vicap.

18
00:00:58,430 --> 00:00:58,850
En fin.

19
00:00:59,360 --> 00:01:00,500
Y también lo tenemos acá.

20
00:01:01,040 --> 00:01:03,410
Entonces acá y acá no da error.

21
00:01:03,470 --> 00:01:07,370
Pero en automóvil, como no lo tenemos en nulo, da el error.

22
00:01:07,490 --> 00:01:14,360
Entonces lo podríamos signar o lo podría dejar tal cual si el tipo automóvil y lo pudiera manejar acá

23
00:01:14,360 --> 00:01:16,820
con un if, por ejemplo, preguntarse nulo.

24
00:01:16,910 --> 00:01:27,200
Bueno, como en vez de retornar acá, simplemente lo asignamos a una variable string detalle perfecto.

25
00:01:27,290 --> 00:01:30,990
Y acá retornamos el detalle.

26
00:01:32,080 --> 00:01:37,700
Bien, pero entonces esto nos permite, por ejemplo, colocar un punto y coma acá.

27
00:01:37,820 --> 00:01:40,460
Listo, finaliza ese string y acá.

28
00:01:40,790 --> 00:01:46,100
Bueno, lo podríamos concatenar, por ejemplo, detalle más igual.

29
00:01:46,280 --> 00:01:51,050
Recuerden que para abreviar y concatenar y acá punto y coma.

30
00:01:52,550 --> 00:01:57,920
Y lo que sigue igual detalle más igual se fijan estamos concatenar.

31
00:01:58,370 --> 00:02:00,500
Pero esta concatenación depende.

32
00:02:00,950 --> 00:02:13,310
Acá podríamos tener un if preguntamos si tipo lo de copiar if si gue tipo distinto de null lo incluimos

33
00:02:14,630 --> 00:02:17,060
se fijan y si no bueno nos incluya.

34
00:02:18,000 --> 00:02:20,460
De esa forma ahorramos el error.

35
00:02:23,860 --> 00:02:24,580
Vamos a probar.

36
00:02:25,090 --> 00:02:26,830
Vamos a levantar y ver como queda.

37
00:02:27,370 --> 00:02:32,950
Nos vamos a ejemplo automóvil, que justamente ocurre el error ahora no debería, se lo debería saltar,

38
00:02:33,760 --> 00:02:36,190
se fijan y en detalle.

39
00:02:36,310 --> 00:02:41,080
Bueno, por supuesto que no muestra el tipo muestra Leidy, bueno, fabricante, modelo, color, pero

40
00:02:41,080 --> 00:02:44,520
el tipo no se muestra porque nulo de esa forma lo tenemos solucionado.

41
00:02:45,640 --> 00:02:48,790
Entonces, utilizando IFF bien, qué otro error podría ocurrir?

42
00:02:49,070 --> 00:02:56,260
Bien, en ejemplo Static acá, acá tenemos Subaru con el estanque, pero Mazda en la clase anterior

43
00:02:56,350 --> 00:02:58,210
no le puse el estanque.

44
00:02:58,390 --> 00:03:02,410
Sin embargo, le puse motor a Mazda, pero no le estanque a Nisan.

45
00:03:02,410 --> 00:03:05,470
Le puse el motor, el estanque, así que ningún problema.

46
00:03:05,560 --> 00:03:06,640
Ni Sandoz también.

47
00:03:06,790 --> 00:03:09,790
Pero qué pasa si en Mazda ya que no tienes tanque?

48
00:03:09,880 --> 00:03:13,430
Por lo tanto la capacidad del estanque no la tiene.

49
00:03:13,990 --> 00:03:21,880
Y recordemos que cuando calculamos por acá el consumo calcula el consumo acá o acá requiere una instancia

50
00:03:21,880 --> 00:03:22,390
del estanque.

51
00:03:22,720 --> 00:03:24,340
Pero hacen nula null.

52
00:03:24,550 --> 00:03:26,910
Va a lanzar el mismo error null po interceptor.

53
00:03:27,130 --> 00:03:29,110
Veamos, vamos acá.

54
00:03:29,500 --> 00:03:31,660
Por ejemplo, tratemos acá al final.

55
00:03:32,410 --> 00:03:43,030
Recuerden en Mazda Shout Mazda punto calcular consumo 300 kilómetro, por ejemplo.

56
00:03:43,140 --> 00:03:46,600
Bueno, y gasta el 70 70 por ciento.

57
00:03:46,600 --> 00:03:51,430
Recuerden que tenemos esa forma, pero da lo mismo en cualquiera de los dos método va a dar el mismo

58
00:03:51,430 --> 00:03:51,710
error.

59
00:03:52,520 --> 00:03:53,440
Vamos a ejecutar.

60
00:03:55,980 --> 00:04:00,030
Se fijan null pointer hecho automóvil, yaba €180.

61
00:04:00,060 --> 00:04:00,450
Veamos.

62
00:04:00,510 --> 00:04:01,270
Hacemos un clic.

63
00:04:01,960 --> 00:04:03,270
Línea 180 acá.

64
00:04:04,250 --> 00:04:08,870
El estanque nulo porque no lo hemos asignado, se fijan, bueno, en este caso lo tenemos que asignar

65
00:04:08,900 --> 00:04:14,480
porque si vamos a utilizar calcula el consumo, necesitamos la instancia del estanque, pero también

66
00:04:14,540 --> 00:04:16,490
hay diferentes soluciones.

67
00:04:16,910 --> 00:04:26,450
Bueno, lo correcto, lo típico es ir acá, acá arriba, por ejemplo, Magda Punto Set estanque.

68
00:04:28,360 --> 00:04:30,880
New El estanque?

69
00:04:31,030 --> 00:04:31,540
No sé.

70
00:04:31,840 --> 00:04:35,410
Lo dejamos por defecto o con algún valor 50, por ejemplo.

71
00:04:35,500 --> 00:04:36,010
Da lo mismo.

72
00:04:36,160 --> 00:04:39,010
Ahora, si levantamos está todo perfecto.

73
00:04:40,920 --> 00:04:42,540
Y acá muestra consumo, se fijan.

74
00:04:43,610 --> 00:04:45,860
Bien, pero otra solución lo voy a comentar.

75
00:04:46,280 --> 00:04:52,130
Por lo tanto, si levantamos, obviamente da el error, pero otra solución es utilizar el método GET,

76
00:04:52,520 --> 00:04:53,120
por ejemplo.

77
00:04:53,510 --> 00:04:59,000
Entonces acá en vez de usar el estanque a secas, usamos el geet estanque.

78
00:05:00,710 --> 00:05:06,500
Llega también acá no, porque esto es el contexto estático, es otro tema aparte.

79
00:05:06,950 --> 00:05:10,430
Acá cuando es parte de la instancia, ven, vámonos.

80
00:05:10,520 --> 00:05:17,580
Algete Control Click Litton Acá tenemos bien un patrón diseño simple que en realidad bien simple es

81
00:05:17,660 --> 00:05:19,910
preguntar antes de retornar al estanque.

82
00:05:20,000 --> 00:05:21,440
Si el nulo if

83
00:05:25,040 --> 00:05:25,550
si es nulo.

84
00:05:26,390 --> 00:05:27,000
Perfecto.

85
00:05:30,140 --> 00:05:30,900
Estanque.

86
00:05:31,460 --> 00:05:32,090
Es igual.

87
00:05:32,210 --> 00:05:34,880
Y le damos un valor por defecto, pero se lo damos en el yeta.

88
00:05:35,120 --> 00:05:36,140
En caso de que sea nulo.

89
00:05:36,260 --> 00:05:38,300
Entonces el momento de retornar del estanque.

90
00:05:38,330 --> 00:05:39,800
Preguntamos si es nulo.

91
00:05:39,920 --> 00:05:41,480
Y esto se aplica a cualquier objeto.

92
00:05:41,660 --> 00:05:42,680
También puede ser a motor.

93
00:05:42,710 --> 00:05:43,100
En fin.

94
00:05:43,220 --> 00:05:46,910
Pero el motor un poco más complicado porque el motor es muy particular para cada instancia.

95
00:05:46,910 --> 00:05:48,950
Entonces ahí es mucho mejor que la ascendemos.

96
00:05:48,950 --> 00:05:50,480
El motor sí o sí.

97
00:05:50,630 --> 00:05:53,010
Y si no, que lance el error de Mull un pulpo.

98
00:05:53,750 --> 00:05:54,590
Ya que requisito.

99
00:05:54,680 --> 00:05:59,340
Pero en el caso del estanque podríamos tener uno por defecto new estanquen.

100
00:05:59,930 --> 00:06:04,550
Y recuerden que el estanque por capacidad, es decir, por defecto la capacidad 40.

101
00:06:04,550 --> 00:06:05,210
Así que está bien.

102
00:06:05,330 --> 00:06:07,030
Acá le asigna la capacidad.

103
00:06:08,080 --> 00:06:15,490
Entonces ahora debería funcionar bien, ya que si bien acá tenemos comentado en Static, perdón por

104
00:06:15,490 --> 00:06:16,030
acá.

105
00:06:17,000 --> 00:06:18,170
En Static Acá.

106
00:06:19,670 --> 00:06:25,250
Lo tenemos comentado, pero en automóvil, en el Gillet se lo asignamos en caso que se anule.

107
00:06:26,190 --> 00:06:27,120
Entonces vamos a probar.

108
00:06:29,410 --> 00:06:32,080
Funciona, se fija porque asigna por defecto.

109
00:06:33,090 --> 00:06:34,440
A pesar de que acá no?

110
00:06:35,700 --> 00:06:36,360
Pero acá la tenemos.

111
00:06:36,420 --> 00:06:36,840
Se fijan.

112
00:06:36,900 --> 00:06:42,920
Son distintas soluciones para evitar de repente lo null pointer, excepto si nos vamos a guet detalle.

113
00:06:44,210 --> 00:06:47,810
Acá bueno, el Heidy fabricante, modelo, no hay ningún problema.

114
00:06:48,050 --> 00:06:54,350
Acá puede problema se fijan en la cilindrada, también podría haber problema en caso de que nos demos

115
00:06:54,350 --> 00:06:54,830
el motor.

116
00:06:54,950 --> 00:07:00,260
Entonces también podríamos validar acá en caso de que pudiera ocurrir algún error.

117
00:07:00,290 --> 00:07:04,750
En caso de que nos sintamos un motor, aunque debiera ser obligación asignar el motor.

118
00:07:05,270 --> 00:07:07,550
Pero bien, también se puede aliar igual que el tipo.

119
00:07:08,190 --> 00:07:12,110
Entonces, por ejemplo, acá cerramos punto y coma.

120
00:07:13,300 --> 00:07:18,430
Acá, como siempre, detalla más igual.

121
00:07:19,570 --> 00:07:29,950
Pero con un if con quetenemos, siempre y cuando exista motor, se disc motor o dis guet motor, da

122
00:07:29,950 --> 00:07:30,580
lo mismo.

123
00:07:30,940 --> 00:07:34,640
Entonces, si es distinto, nul perfecto.

124
00:07:35,260 --> 00:07:37,240
Bueno, prefiero usar la llave, recuerden.

125
00:07:37,270 --> 00:07:40,750
Pero si es una sola línea como esta, puedo omitir la llave.

126
00:07:40,820 --> 00:07:43,480
Pero bueno, queda mejor así y listo.

127
00:07:43,600 --> 00:07:47,110
Ahí queda mejor, incluso más seguro para el motor y listo.

128
00:07:47,140 --> 00:07:52,810
Bueno, eso quería explicar el tema de error, sobretodo este error típico de Yaba que lo vamos a encontrar

129
00:07:52,900 --> 00:07:53,790
muchas veces.

130
00:07:53,950 --> 00:07:59,230
El famoso NULL Pointer Exception cuando una referencia es nula y tratamos de invocar algún método,

131
00:07:59,320 --> 00:08:02,890
lo tratamos de utilizar, pero como no tiene referencia da este error.

132
00:08:02,950 --> 00:08:04,740
Continuamos en la siguiente clase.
