Java ArrayList的初始化类型之间的差异

Java ArrayList的初始化类型之间的差异,java,arraylist,Java,Arraylist,两者的区别是什么: 第一: ArrayList linkList=new ArrayList(); 第二: ArrayList linkList=new ArrayList(); 还是有什么区别 ArrayList<String> linkList = new ArrayList<String>(); 在第一种情况下给出编译时错误,但在运行时使用第二种声明失败 另一个例子是,要从两个备选方案中获得get()aString,第二个变体需要强制转换: 第一: 第二: 编

两者的区别是什么:

第一:

ArrayList linkList=new ArrayList();
第二:

ArrayList linkList=new ArrayList();
还是有什么区别

ArrayList<String> linkList = new ArrayList<String>();
在第一种情况下给出编译时错误,但在运行时使用第二种声明失败

另一个例子是,要从两个备选方案中获得
get()
a
String
,第二个变体需要强制转换:
第一:

第二:


编译时:第一个使用泛型,确保类型安全性和代码可读性


在运行时:它们是相同的。

在第一种情况下,链接列表的类型为String,在第二种情况下,链接列表的类型为Object。

第一种情况非常好,第二种情况下会给出警告?如果使用ArrayList,也会键入linkList。put(0)将生成编译时错误;如果使用ArrayList linkList linkList.put(0),则会生成运行时错误。在第一种情况下,
linkList
类型为String,在第二种情况下,类型为
Object
ArrayList linkList = new ArrayList<String>();
ArrayList<String> linkList = new ArrayList<String>();
ArrayList linkList = new ArrayList<String>();
linkList.add(0);
String element = (String) linkList.get(0);  
String element = linkList.get(0);  
String element = (String) linkList.get(0);