两者之间有什么区别:
首先:
ArrayList<String> linkList = new ArrayList<String>();
第二名:
ArrayList linkList = new ArrayList<String>();
或者有什么不同吗?
答案 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 。