"Otro tema interesante".
"¡Las sorpresas siguen llegando! ¿Es mi cumpleaños?"
"Hoy les hablaré sobre los genéricos. Los genéricos son tipos que tienen un parámetro. En Java, las clases contenedoras le permiten indicar el tipo de sus objetos internos".
"Cuando declaramos una variable genérica, indicamos dos tipos en lugar de uno: el tipo de variable y el tipo de datos que almacena".
"ArrayList es un buen ejemplo. Cuando creamos un nuevo objeto ArrayList, es conveniente indicar el tipo de valores que se almacenarán dentro de esta lista".
Código | Explicación |
---|---|
|
Cree una variable ArrayList llamada list . Asígnele un objeto ArrayList. Esta lista solo puede almacenar objetos String . |
|
Cree una variable ArrayList llamada list . Asígnele un objeto ArrayList. Esta lista puede almacenar cualquier valor . |
|
Cree una variable ArrayList llamada list . Asígnele un objeto ArrayList. Esta lista solo puede almacenar Integer y int valores. |
"Suena súper interesante. Especialmente la parte sobre el almacenamiento de valores de cualquier tipo ".
"Solo parece que eso es algo bueno. En realidad, si colocamos cadenas en un ArrayList en un método y luego esperamos que contenga números en otro método, el programa fallará (terminará con un error)".
"Veo."
"Por ahora, no crearemos nuestras propias clases con parámetros de tipo. Solo usaremos las existentes".
"¿Puede cualquier clase ser un parámetro de tipo, incluso uno que yo escribo?"
"Sí. Cualquier tipo excepto los tipos primitivos. Todos los parámetros de tipo deben heredar de la clase Object".
"¿ Quieres decir que no puedo escribir ArrayList<int>? "
"De hecho, no puedes. Pero los desarrolladores de Java han escrito clases contenedoras para cada uno de los tipos primitivos. Estas clases heredan Object . Así es como se ve:"
tipo primitivo | Clase | Lista |
---|---|---|
En t | Entero | ArrayList< Entero > |
doble | Doble | ArrayList <Doble> _ |
booleano | booleano | ArrayList< Booleano > |
carbonizarse | Personaje | ArrayList< Carácter > |
byte | Byte | ArrayList <Byte> _ |
"Puedes asignar fácilmente clases primitivas y sus análogos (clases contenedoras) entre sí:"
Ejemplos |
---|
|
|
|
|
|
"Genial. Creo que intentaré usar ArrayList con más frecuencia".
GO TO FULL VERSION