1
00:00:00,150 --> 00:00:04,050
Vamos a implementar los genéricos en la clase de camión, parecido a un método.

2
00:00:04,080 --> 00:00:08,610
Se acuerdan que en un método se define el tipo genérico o el parámetro genérico?

3
00:00:08,790 --> 00:00:16,470
Justo después de los modificadores en públic se guardan acá y antes del retorno con las llaves triangulares

4
00:00:16,590 --> 00:00:19,750
operadores diamante y una letra mayúscula.

5
00:00:19,910 --> 00:00:20,970
Bueno, acá también.

6
00:00:21,820 --> 00:00:26,110
Pero se define acá después del nombre de la clase, por ejemplo, camión.

7
00:00:26,230 --> 00:00:29,020
Entonces, justo después, colocamos esto.

8
00:00:29,220 --> 00:00:31,360
Operador diamante y la letra T.

9
00:00:31,570 --> 00:00:32,170
Perfecto.

10
00:00:32,350 --> 00:00:36,370
Ahí estamos definiendo que esta clase tiene un parámetro genérico.

11
00:00:36,490 --> 00:00:37,210
Un parámetro.

12
00:00:37,360 --> 00:00:40,090
Y luego esto se cambia, se reemplaza por los tipos.

13
00:00:40,720 --> 00:00:46,740
Por ejemplo, en vez de utilizar Hoggett, acá utilizamos el tipo genérico en mayúscula.

14
00:00:47,020 --> 00:00:52,700
Pero también hay que indicar que el tipo list va a contener elementos también del tipo T.

15
00:00:53,470 --> 00:00:59,440
Por ejemplo, una lista de automóviles, una lista maquinaria, una lista de animal.

16
00:00:59,530 --> 00:01:04,240
Se fijan entonces también del tipo T y acá en el ArrayList.

17
00:01:05,330 --> 00:01:08,090
Solamente Diamante, nada más se fijan.

18
00:01:08,420 --> 00:01:15,110
Ya tenemos casi todo, solo falta y te dale, porque también el literal de es de un tipo de elementos

19
00:01:15,290 --> 00:01:18,800
becho utiliza por debajo genericos control click.

20
00:01:19,920 --> 00:01:28,260
A cataliza se fijan public interface y derable de el tipo y retornan iterador del tipo, por ejemplo

21
00:01:28,260 --> 00:01:32,400
tomóvil un iterador del tipo maquinaria se fijan con esos elementos.

22
00:01:32,550 --> 00:01:35,910
El iterador contiene elementos de cierto tipo.

23
00:01:36,030 --> 00:01:37,740
Entonces por ahora lo estamos dejando.

24
00:01:37,830 --> 00:01:40,230
Del tipo object, del tipo genérico.

25
00:01:40,770 --> 00:01:41,580
Volvemos al camión.

26
00:01:41,670 --> 00:01:42,900
Voy a cerrar y trave.

27
00:01:43,960 --> 00:01:45,830
Entonces acá también te.

28
00:01:46,000 --> 00:01:47,050
Entonces, Diamante?

29
00:01:47,860 --> 00:01:49,270
Qué me faltaría acá?

30
00:01:50,670 --> 00:01:50,840
T?

31
00:01:51,960 --> 00:01:54,720
En el tipo Rotondo se fijan igual que la interfaz.

32
00:01:54,870 --> 00:02:01,170
Recuerden que la interfaz y terado le retorna un literato del tipo genérico del bote.

33
00:02:01,500 --> 00:02:02,310
Ya estamos listo.

34
00:02:02,700 --> 00:02:03,270
Eso es todo.

35
00:02:03,390 --> 00:02:04,620
100 por ciento genérico.

36
00:02:04,710 --> 00:02:10,590
Entonces ahora en ejemplo genérico aparece un warning porque tenemos que modificar acá.

37
00:02:10,650 --> 00:02:12,150
Por ejemplo, en camión.

38
00:02:12,450 --> 00:02:15,120
En el tipo de auto siempre van el tipo, igual que en el list.

39
00:02:15,780 --> 00:02:20,850
Si vemos camión acá el list indicamos el tipo de dato que va a contener.

40
00:02:21,120 --> 00:02:23,700
Acá también el tipo Hatuey que va a contener el camión.

41
00:02:23,880 --> 00:02:27,120
Entonces Diamante va a contener animal.

42
00:02:29,460 --> 00:02:35,040
Se fijan, ahí se arregló bastante problema y llega también corchetes y lo dejamos de esa forma.

43
00:02:35,280 --> 00:02:39,550
Es decir, corchete triangulares podría también animal, animal?

44
00:02:40,350 --> 00:02:42,880
Se fijan, pero redundante, igual que el list.

45
00:02:43,050 --> 00:02:45,060
Entonces simplemente lo dejamos con los diamantes.

46
00:02:45,060 --> 00:02:45,600
Nada más.

47
00:02:46,170 --> 00:02:46,560
Listo.

48
00:02:47,280 --> 00:02:47,820
Y ahora?

49
00:02:48,000 --> 00:02:49,590
Bueno, simplemente quitamos esto.

50
00:02:49,920 --> 00:02:52,620
Quitamos el cast redundante.

51
00:02:52,710 --> 00:02:55,200
Acá colocamos animal en vez de objet.

52
00:02:57,790 --> 00:03:03,190
Se fijan acá a en vez de oro y no les cercas lo hace de forma automática.

53
00:03:03,460 --> 00:03:07,090
Es mucho más limpio el código camión, maquinarias.

54
00:03:07,600 --> 00:03:15,220
Entonces acá colocamos maquinaria, acá simplemente el operador diamante que más.

55
00:03:15,400 --> 00:03:17,260
Y acá maquinaria.

56
00:03:17,410 --> 00:03:23,020
En vez de objeto colocamos m en o el cast lo quitamos.

57
00:03:26,320 --> 00:03:26,890
Y acá también.

58
00:03:37,530 --> 00:03:38,430
Y esto lo quitamos.

59
00:03:40,540 --> 00:03:43,600
De que era 100 por ciento usando genéricos, mucho mejor.

60
00:03:43,840 --> 00:03:44,710
Y como anexo.

61
00:03:45,580 --> 00:03:47,440
Cómo se repite el foro acá, se repite acá.

62
00:03:47,500 --> 00:03:52,360
Bueno, con diferente tipo también podríamos implementar un método genético para imprimir los datos

63
00:03:52,360 --> 00:03:52,820
del camión.

64
00:03:53,230 --> 00:04:01,630
Entonces, por ejemplo, por acá o abajo de lo mismo, un public del tipo static void solamente imprime

65
00:04:03,310 --> 00:04:04,140
imprimir camión.

66
00:04:05,650 --> 00:04:06,400
Qué va a pasar?

67
00:04:06,610 --> 00:04:09,400
Va a pasar el camión, pero camión se fijan.

68
00:04:10,300 --> 00:04:14,410
Camión o transporte da lo mismo, pero en cambio maneja genérico.

69
00:04:14,500 --> 00:04:18,670
Entonces acá tenemos que definir nuestro parámetro del genérico acá.

70
00:04:19,030 --> 00:04:22,270
Entonces este es el fin del parámetro.

71
00:04:22,360 --> 00:04:23,440
Acá lo utilizamos.

72
00:04:24,050 --> 00:04:25,570
T Perfecto.

73
00:04:25,990 --> 00:04:26,950
Yo creo que lo tenemos.

74
00:04:27,460 --> 00:04:30,180
Por ejemplo, voy a copiar esto y lo pego acá.

75
00:04:32,000 --> 00:04:35,150
Y casi de camión lo que llamas itera.

76
00:04:36,540 --> 00:04:39,060
Y en vez de animal, claro, tiene que ser del tipo T.

77
00:04:39,360 --> 00:04:41,670
Entonces simplemente T t mayúscula.

78
00:04:42,520 --> 00:04:46,290
Perfecto, claro, pero como genérico, acá no pongo imprimir un nombre.

79
00:04:46,680 --> 00:04:48,150
Ven acá, guet.

80
00:04:48,150 --> 00:04:48,780
Nombre?

81
00:04:48,990 --> 00:04:49,800
Qué tipo?

82
00:04:50,010 --> 00:04:55,410
No podemos acceder acá a los métodos de cada uno, porque genérico podría ser cualquier billetera setter.

83
00:04:55,600 --> 00:04:59,220
Entonces, en este caso sí que estamos obligado a realizar el cast.

84
00:04:59,370 --> 00:05:09,780
Eso sí, incluso podrías preguntar IF Por ejemplo, si a instance of de animal, entonces perfecto.

85
00:05:10,930 --> 00:05:14,110
Vamos a imprimir esto y acá hacemos el cast de animal.

86
00:05:14,620 --> 00:05:17,320
Entonces, paréntesis, cerramos paréntesis.

87
00:05:17,410 --> 00:05:17,980
Animal.

88
00:05:20,090 --> 00:05:26,720
Acá abrimos paréntesis y acá cerramos antes del punto A y esto mismo acá.

89
00:05:30,270 --> 00:05:31,590
Ahí sí que ahí está, me obligó a ser.

90
00:05:32,010 --> 00:05:37,740
No nos queda otra, porque claro, acá vamos a mostrar los datos de cada uno y así también por cada

91
00:05:37,740 --> 00:05:41,360
uno, por maquinaria y también por automóvil.

92
00:05:42,370 --> 00:05:46,270
Ahora si se ve un poco sucio y un poco feo el cast.

93
00:05:46,450 --> 00:05:50,940
Pero no hay otra alternativa para poder llamar a sus datos a su yet and Z.

94
00:05:51,430 --> 00:05:58,210
A no ser que tengamos o que el té herede de una superclase y el superclase tenga estos métodos una clase

95
00:05:58,210 --> 00:06:03,810
padre, tenga tus métodos o método en común para los diferentes tipos de objeto que queramos transportar.

96
00:06:04,590 --> 00:06:06,820
Bien, estos mismos se tienen que aplicar a todos.

97
00:06:07,060 --> 00:06:11,390
Entonces if a instanceof automóvi.

98
00:06:11,830 --> 00:06:13,600
De hecho, podríamos utilizar un else.

99
00:06:16,870 --> 00:06:17,590
Perfecto.

100
00:06:17,710 --> 00:06:20,380
Acá tenemos el automóvil un poco más abajo.

101
00:06:21,940 --> 00:06:23,290
Más abajo, marca.

102
00:06:27,040 --> 00:06:28,120
Acá hacemos el cast.

103
00:06:28,750 --> 00:06:29,770
Me comí la s.

104
00:06:29,890 --> 00:06:30,900
Hacemos el cast.

105
00:06:41,550 --> 00:06:42,180
Maquinaria.

106
00:06:49,940 --> 00:06:50,900
Cacería a?

107
00:06:54,520 --> 00:06:55,360
Maquinaria.

108
00:06:58,710 --> 00:07:05,550
Entonces era imprimir camiones, en vez de esto, imprimir camión y pasamos transporte caballo.

109
00:07:11,950 --> 00:07:13,810
Transporte, máquinas.

110
00:07:15,270 --> 00:07:20,820
Lleca imprimir camión, transporte, auto.

111
00:07:24,850 --> 00:07:25,690
Vamos a probar.

112
00:07:27,870 --> 00:07:33,340
De cara tenemos usando genéricos clases genéricas y un método genérico, nada más.

113
00:07:33,360 --> 00:07:35,400
Continuamos en la siguiente clase.
