"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
ArrayList<String> list = new ArrayList<String>();
Cree una variable ArrayList llamada list.
Asígnele un objeto ArrayList.
Esta lista solo puede almacenar objetos String .
ArrayList list = new ArrayList();
Cree una variable ArrayList llamada list.
Asígnele un objeto ArrayList. Esta lista puede almacenar cualquier valor .
ArrayList<Integer> list = new ArrayList<Integer>();
Cree una variable ArrayList llamada list.
Asígnele un objeto ArrayList.
Esta lista solo puede almacenar Integery intvalores.

"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
int a = 5;
Integer b = a;
int c = b;

Character c = 'c';  //the literal c is a char
char d = c;
Byte b = (byte) 77;  // The literal 77 is an int
Boolean isOk = true;  // the literal true is a boolean
Double d = 1.0d;  // The literal 1.0d is a double

"Genial. Creo que intentaré usar ArrayList con más frecuencia".

undefined
7
Опрос
null,  7 уровень,  7 лекция
недоступен
null
Funciones