Vamos a implementar los genéricos en la clase de camión, parecido a un método.
Se acuerdan que en un método se define el tipo genérico o el parámetro genérico?
Justo después de los modificadores en públic se guardan acá y antes del retorno con las llaves triangulares
operadores diamante y una letra mayúscula.
Bueno, acá también.
Pero se define acá después del nombre de la clase, por ejemplo, camión.
Entonces, justo después, colocamos esto.
Operador diamante y la letra T.
Perfecto.
Ahí estamos definiendo que esta clase tiene un parámetro genérico.
Un parámetro.
Y luego esto se cambia, se reemplaza por los tipos.
Por ejemplo, en vez de utilizar Hoggett, acá utilizamos el tipo genérico en mayúscula.
Pero también hay que indicar que el tipo list va a contener elementos también del tipo T.
Por ejemplo, una lista de automóviles, una lista maquinaria, una lista de animal.
Se fijan entonces también del tipo T y acá en el ArrayList.
Solamente Diamante, nada más se fijan.
Ya tenemos casi todo, solo falta y te dale, porque también el literal de es de un tipo de elementos
becho utiliza por debajo genericos control click.
A cataliza se fijan public interface y derable de el tipo y retornan iterador del tipo, por ejemplo
tomóvil un iterador del tipo maquinaria se fijan con esos elementos.
El iterador contiene elementos de cierto tipo.
Entonces por ahora lo estamos dejando.
Del tipo object, del tipo genérico.
Volvemos al camión.
Voy a cerrar y trave.
Entonces acá también te.
Entonces, Diamante?
Qué me faltaría acá?
T?
En el tipo Rotondo se fijan igual que la interfaz.
Recuerden que la interfaz y terado le retorna un literato del tipo genérico del bote.
Ya estamos listo.
Eso es todo.
100 por ciento genérico.
Entonces ahora en ejemplo genérico aparece un warning porque tenemos que modificar acá.
Por ejemplo, en camión.
En el tipo de auto siempre van el tipo, igual que en el list.
Si vemos camión acá el list indicamos el tipo de dato que va a contener.
Acá también el tipo Hatuey que va a contener el camión.
Entonces Diamante va a contener animal.
Se fijan, ahí se arregló bastante problema y llega también corchetes y lo dejamos de esa forma.
Es decir, corchete triangulares podría también animal, animal?
Se fijan, pero redundante, igual que el list.
Entonces simplemente lo dejamos con los diamantes.
Nada más.
Listo.
Y ahora?
Bueno, simplemente quitamos esto.
Quitamos el cast redundante.
Acá colocamos animal en vez de objet.
Se fijan acá a en vez de oro y no les cercas lo hace de forma automática.
Es mucho más limpio el código camión, maquinarias.
Entonces acá colocamos maquinaria, acá simplemente el operador diamante que más.
Y acá maquinaria.
En vez de objeto colocamos m en o el cast lo quitamos.
Y acá también.
Y esto lo quitamos.
De que era 100 por ciento usando genéricos, mucho mejor.
Y como anexo.
Cómo se repite el foro acá, se repite acá.
Bueno, con diferente tipo también podríamos implementar un método genético para imprimir los datos
del camión.
Entonces, por ejemplo, por acá o abajo de lo mismo, un public del tipo static void solamente imprime
imprimir camión.
Qué va a pasar?
Va a pasar el camión, pero camión se fijan.
Camión o transporte da lo mismo, pero en cambio maneja genérico.
Entonces acá tenemos que definir nuestro parámetro del genérico acá.
Entonces este es el fin del parámetro.
Acá lo utilizamos.
T Perfecto.
Yo creo que lo tenemos.
Por ejemplo, voy a copiar esto y lo pego acá.
Y casi de camión lo que llamas itera.
Y en vez de animal, claro, tiene que ser del tipo T.
Entonces simplemente T t mayúscula.
Perfecto, claro, pero como genérico, acá no pongo imprimir un nombre.
Ven acá, guet.
Nombre?
Qué tipo?
No podemos acceder acá a los métodos de cada uno, porque genérico podría ser cualquier billetera setter.
Entonces, en este caso sí que estamos obligado a realizar el cast.
Eso sí, incluso podrías preguntar IF Por ejemplo, si a instance of de animal, entonces perfecto.
Vamos a imprimir esto y acá hacemos el cast de animal.
Entonces, paréntesis, cerramos paréntesis.
Animal.
Acá abrimos paréntesis y acá cerramos antes del punto A y esto mismo acá.
Ahí sí que ahí está, me obligó a ser.
No nos queda otra, porque claro, acá vamos a mostrar los datos de cada uno y así también por cada
uno, por maquinaria y también por automóvil.
Ahora si se ve un poco sucio y un poco feo el cast.
Pero no hay otra alternativa para poder llamar a sus datos a su yet and Z.
A no ser que tengamos o que el té herede de una superclase y el superclase tenga estos métodos una clase
padre, tenga tus métodos o método en común para los diferentes tipos de objeto que queramos transportar.
Bien, estos mismos se tienen que aplicar a todos.
Entonces if a instanceof automóvi.
De hecho, podríamos utilizar un else.
Perfecto.
Acá tenemos el automóvil un poco más abajo.
Más abajo, marca.
Acá hacemos el cast.
Me comí la s.
Hacemos el cast.
Maquinaria.
Cacería a?
Maquinaria.
Entonces era imprimir camiones, en vez de esto, imprimir camión y pasamos transporte caballo.
Transporte, máquinas.
Lleca imprimir camión, transporte, auto.
Vamos a probar.
De cara tenemos usando genéricos clases genéricas y un método genérico, nada más.
Continuamos en la siguiente clase.