2012-05-13 83 views
9

我只有這個,但我的編譯器說:類型不匹配:不能從ArrayList轉換爲列表 那麼,有什麼問題可以告訴我嗎?我正在使用Elipse Java EE IDE。類型不匹配:無法從ArrayList轉換爲列表

import java.awt.List; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.Iterator; 


public class Main { 
    public static void main(String[] args) { 
     List list = new ArrayList(); 


    } 
} 

回答

21

不正確導入,它必須是java.util.List

+0

是的,你是對的,謝謝! –

3

您需要導入java.util.List而不是java.awt.List

您可能還想使用類型參數而不是原始類型。例如,如果該列表將要舉行String值:

List<String> list = new ArrayList<>(); 

,或者之前的Java 7:

List<String> list = new ArrayList<String>(); 
+0

實際上,通過指定兩次字符串,您有一個冗餘類型參數。既然你有列表你可以跟着ArrayList <>() – Gabe

+0

@Gabe - 這是真的;但在Java 7之前,第二個「String」是必需的。舊習難改。 :) –

2

因爲java.util.ArrayList延伸java.util.List,不java.awt.List。要導入錯誤的類:

import java.awt.List; 

import java.util.List; 
5

您已經導入了java.awt.List,它是AWT包中的列表控件,而不是java.util.List,它是表示元素列表的集合類。因此,Java認爲你正在從一個邏輯數組值列表轉換成一個小部件,這沒有任何意義。

改變進口線

import java.util.List; 

要解決這個問題,因爲會寫

java.util.List list = new ArrayList(); 

明確表示要集合。

也就是說,你也應該在這裏使用泛型。使用原始集合類型早已被棄用。最好的答案是寫如

List<T> list = new ArrayList<T>(); 

希望這有助於!

1

正如別人告訴它的一個導入錯誤。由於您在使用Eclipse EDE時出現錯誤,請將光標停留在該位置,然後按Ctrl + 1,它會顯示可能會幫助您修復錯誤的建議。

相關問題