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

Suh*_*pta 3 java arraylist

两者有什么区别 :

第一:

ArrayList<String> linkList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

第二个:

ArrayList linkList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

或者有什么区别?

Kep*_*pil 9

ArrayList<String> linkList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

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

ArrayList linkList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

没有.正如@BruceMartin所指出的那样,这意味着线条

linkList.add(0);
String element = (String) linkList.get(0);  
Run Code Online (Sandbox Code Playgroud)

在第一种情况下给出编译时错误,但在运行时使用第二种声明失败.

再举一个例子,以get()一个String从两个备选方案,第二方案会需要强制:
第一:

String element = linkList.get(0);  
Run Code Online (Sandbox Code Playgroud)

第二:

String element = (String) linkList.get(0);
Run Code Online (Sandbox Code Playgroud)