Почему мы теряем безопасность типа при использовании List
, а не при использовании List<Object>
? Разве это не одно и то же?
EDIT: я обнаружил, что следующее дает ошибку компиляции
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));
}
}
тогда как это не
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));
}
}
Почему?