Galera li no livro da Keity que quando um método possui um parâmetro
genérico, esse só recebe como argumento o tipo específicado no parâmetro genérico.
Por exemplo:
public static void m (List<String> list) {
System.out.println("List");
}
O método m pelo que eu li, só poderia receber uma List, e o polimorfismo
só se aplica ao tipo base. Pois bem, fazendo simulados aqui, descobri que posso passar
para esse parâmetro um List sem tipo parametrizado.
Por exemplo:
public static void main(String[] args) {
List<String> least = new ArrayList<String>();
List list = new ArrayList();
meth(list); // tipo não parametrizado... [b]PORQUE ISSO FUNCIONA ????[/b]
meth(least); // tipo parametrizado, ok.
}
public static void meth(List<String> list) {
System.out.println("List");
}
Se os genéricos são uma proteção estritamente de tempo de compilação, o compilador
não deveria resolver isso ?
Grato
