Академический Документы
Профессиональный Документы
Культура Документы
Los Genricos aaden estabilidad a su cdigo, haciendo que ms errores sean detectables en
tiempo de compilacin.
Controles
ms
fuertes
de
tipo
en
tiempo
de
compilacin.
Compilador Java aplica fuerte tipo de chequeo a cdigos genricos y asuntos de errores de
cdigo por si el cdigo viola algn tipo de seguridad. La fijacin de los errores en tiempo de
compilacin es ms fcil que la fijacin de los errores de ejecucin, que puede ser difcil de
encontrar.
Habilitacin
de
los
programadores
para
implementar
algoritmos
genricos.
Tipos genricos
Un tipo genrico es una clase genrica o interfaz que est parametrizado con tipos.
Una clase genrica se define con el siguiente formato:
La seccin tipo de parmetro est delimitado por parntesis angulares (<>), seguido del nombre
de la clase. Se especifica los parmetros de tipo (tambin llamadas variables de tipo)
T1, T2, ..., y Tn.
como
Por convencin, los nombres de los parmetros de tipo son letras individuales, en maysculas. Sin
esta convencin, sera difcil decir la diferencia entre una variable de tipo y una clase o interfaz
nombre comn.
Los nombres de los parmetros tipo ms comnmente utilizados son:
K - Key
N - Number
T - Type
V - Value
El diamante
En Java SE 7 y versiones posteriores, puede reemplazar los argumentos de tipo necesarios para
invocar el constructor de una clase genrica con un conjunto vaco de argumentos de tipo (<>)
siempre que el compilador pueda determinar o inferir, los argumentos de tipo del contexto. Este par
de parntesis angulares, <>, es informalmente llamado el diamante. Por ejemplo, puede crear una
instancia de Box <Integer> con la siguiente declaracin:
Mtodos genricos
Mtodos genricos son mtodos que introducen sus propios parmetros de tipo. Esto es similar a lo
que se declara un tipo genrico, pero el alcance del parmetro de tipo se limita al mtodo en el que
se declara.
La sintaxis de un mtodo genrico incluye un parmetro de tipo, dentro de parntesis angulares, y
se presenta antes del tipo de retorno del mtodo.
La clase Util incluye un mtodo genrico, comparare, que compara un par de objetos:
// OK
// OK
Map <String, Lista <String >> myMap = new HashMap <String, List
<String >> ();
Puede sustituir el tipo parametrizado del constructor con un conjunto vaco de parmetros de
tipo (<>):
Map <String, Lista <String >> myMap = new HashMap <> ();
Los Comodines
En el cdigo genrico, el signo de interrogacin (?), Llamado el comodn, representa un tipo
desconocido. El comodn se puede utilizar en una variedad de situaciones: como el tipo de un
parmetro, un campo o variable local; a veces como un tipo de retorno (aunque es mejor en la
prctica de programacin ser ms especficos). El comodn nunca se usa como un argumento de
tipo para un mtodo de invocacin genrica, una creacin de la instancia clase genrica o un
supertipo.
Cuando el cdigo es el uso de mtodos de la clase genrica que no depende del parmetro
de tipo. Por ejemplo, List.size o list.clear. De hecho, la clase <?> Se utiliza
tan a menudo, porque la mayora de los mtodos en la clase <T> no dependen de t.
Digamos que quiere escribir un mtodo que pone objetos Integer en una lista. Para maximizar la
flexibilidad, que le gustara que el mtodo funcione en List<Integer>, List<Number>
y List<Object>, cualquier cosa que puede contener valores enteros.
Para
escribir
el
mtodo
que
funciona
en
las
listas
de enteros y
trmino List<Integer> es
ms
los
supertipos
especificara List
que
List
restrictiva
<? sper Integer>, porque el primero coincide solamente con una lista de tipo Integer,
mientras que el siguiente con un lista de cualquier tipo que es un supertipo Integer.
Escriba un mtodo genrico para contar el nmero de elementos en una coleccin que
tienen una propiedad especfica (por ejemplo, nmeros enteros impares, nmeros
primos, palindromes).
}
4- Si el compilador se borran todos los parmetros de tipo en tiempo de compilacin,
por qu debera usar los genricos?
-
El compilador Java impone controles ms estrictos sobre tipo cdigo genrico en tiempo de
compilacin.
{this.key=key;}
{this.value=value;}
6-