Tipo parametrizado generalmente es una clase que se ocupa de otro objeto sin interés de qué tipo es. El tipo se puede definir usando un "nombre" simbólico y luego se pasa cuando se crea una instancia de clase.
Por ejemplo:
class MyClass<T> {
private T obj;
public MyClass<T>(T obj) {
this.obj = obj;
}
public int getId() {
return obj.hashCode();
}
}
En el ejemplo por encima de MyClass
envolturas objeto de cualquier tipo y ejecuta su método hashCode()
usando el hecho de que siempre existe este método.
Aquí es cómo se utiliza esta clase:
int sid = new MyClass<String>("aaaa").hashCode();
por favor la atención que no se puede decir new MyClass<String>(123)
: el hecho de que objeto se crea con el parámetro String
dicta el tipo de argumento del constructor.
Volviendo a su ejemplo Collection<String>
significa "colección de cadenas". Esto significa que no puede agregar objetos de otro tipo a esta colección.
¿Qué hay de la lectura de la siguiente frase en el enlace que le dio: "La Colección declaración denota un tipo parametrizado, que es una instancia de la Colección de tipo genérico, en el lugar el soporte E ha sido reemplazado por el tipo de concreto String "? –
@JBNizet, Sí, mi confusión proviene del tipo de creación de instancias 'LinkedList'. Tu comentario a continuación me lo aclara. –
wulfgarpro