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

时间:2012-08-16 13:06:30

标签: java arraylist

两者之间有什么区别:

首先

ArrayList<String> linkList = new ArrayList<String>();

第二名:

ArrayList linkList = new ArrayList<String>();

或者有什么不同吗?

3 个答案:

答案 0 :(得分:9)

ArrayList<String> linkList = new ArrayList<String>();

使用泛型来确保类型安全。

ArrayList linkList = new ArrayList<String>();

没有。正如@BruceMartin所指出的,这意味着行

linkList.add(0);
String element = (String) linkList.get(0);  

在第一种情况下给出编译时错误,但在第二种情况下在运行时失败。

另一个例子,从两个替代方案中get() String,第二个变体需要演员:
首先:

String element = linkList.get(0);  

第二名:

String element = (String) linkList.get(0);

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

同样在第一种情况下, linkList 的类型为String,而在第二种情况下的类型为 Object