Pourquoi perdons-nous la sécurité des types lorsque nous utilisons List
et non en utilisant List<Object>
? Ne s'agit-il pas essentiellement de la même chose ?
EDITAR : J'ai constaté que le texte suivant donne une erreur de compilation
public class TestClass
{
static void func(List<Object> o, Object s){
o.add(s);
}
public static void main(String[] args){
func(new ArrayList<String>(), new Integer(1));
}
}
alors que ce n'est pas le cas
public class TestClass
{
static void func(List o, Object s){
o.add(s);
}
public static void main(String[] args){
func(new ArrayList<String>(), new Integer(1));
}
}
Pourquoi ?