Java—启动无泛型类型的泛型变量;

Java—启动无泛型类型的泛型变量;,java,generics,Java,Generics,请您解释一下这些声明之间的区别: List<Number> test = new ArrayList<Number>(); List<Number> test1 = new ArrayList(); test.add(new Integer(10)); test1.add(new Integer(10)); //test.add(new Object()); //test1.add(new Object()); List test=newarraylist(

请您解释一下这些声明之间的区别:

List<Number> test = new ArrayList<Number>();
List<Number> test1 = new ArrayList();
test.add(new Integer(10));
test1.add(new Integer(10));
//test.add(new Object());
//test1.add(new Object());
List test=newarraylist();
List test1=new ArrayList();
增加(新的整数(10));
test1.add(新的整数(10));
//test.add(新对象());
//test1.add(newobject());
add方法的前2次调用工作正常,最后2次调用失败。 除了第二次初始化时的编译警告之外,还有什么其他内容吗

编译时类型安全性基于变量类型(而不是引用的对象类型),我是否理解正确

先谢谢你

编译时类型安全性是基于 变量类型(而不是引用的对象类型)

编译时类型安全性是基于 变量类型(而不是引用的对象类型)

是。

以下两个声明之间没有运行时差异:

List<Number> test = new ArrayList<Number>();
List<Number> test1 = new ArrayList();
以下两个声明之间没有运行时差异:

List<Number> test = new ArrayList<Number>();
List<Number> test1 = new ArrayList();

我想知道,如果你得到test1的整数,它将是一个对象还是一个整数运行时,它将始终是一个对象,将added(由编译器)转换为Integer(整数)。我想知道,如果你得到test1的整数,它将是一个对象还是一个整数运行时,它将始终是一个对象,将added(由编译器)转换为Integer(整数)