3

两者有什么区别 :

第一的 :

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

第二 :

ArrayList linkList = new ArrayList<String>();

或者有什么不同吗?

4

3 回答 3

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);
于 2012-08-16T13:07:34.310 回答
3

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

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

于 2012-08-16T13:09:01.547 回答
0

同样在第一种情况下linkList是 String 类型,在第二种情况下是Object类型。

于 2012-08-16T13:36:07.840 回答