2012-10-02 86 views
4

我是Java新手,但我很喜歡它!NetBeans7.2中ArrayList的問題

我使用NetBeans7.2,當我嘗試創建這樣一個ArrayList:

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

NetBeans的說:「ArrayList類型不帶參數」(這是沒有意義的,因爲我的代碼很簡單,接縫對於Java7來說是正確的)。

此外,當我嘗試導入:

import java.util.ArrayList; 

的NetBeans說 「的ArrayList已經在此編譯單元定義」。

不需要導入ArrayList了嗎?

非常感謝!請原諒我的英語不好;)

編輯:這是我的全部代碼(它只是一個exercice)

import java.util.ArrayList; 
public class ArrayList { 

    public static void main(String[] args) { 

     ArrayList<String> cores = new ArrayList<>(); 
     cores.add("Branco"); 
     cores.add(0, "Vermelho"); 
     cores.add("Amarelo"); 
     cores.add("Azul"); 
     System.out.println(cores.toString()); 

     System.out.println("Tamanho= " + cores.size()); 
     System.out.println("Elemento2= " + cores.get(2)); 
     System.out.println("Indice Branco= " + cores.indexOf("Branco")); 

     cores.remove("Branco"); 

     System.out.println("Tem Amarelo?" + cores.contains("Amarelo")); 

    } 
} 
+0

您確定嗎?我的電腦沒有這些問題。 –

+1

你正在編譯什麼版本的Java? –

+0

您沒有定義衝突類型,是嗎?如果你嘗試'java.util.ArrayList list = new java.util.ArrayList <>();'? – aroth

回答

5

如果更改類名來比ArrayList的其他東西,你的代碼是完全正確的Java7,它是合法使用鑽石操作符(<>)像你這樣的:

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

基本這背後的想法是,使實例化泛型類的代碼變得不那麼冗長。 Java7編譯器意味着自動需要什麼。

Java6會發出抱怨,並要求您按照Jon的建議書寫。

+0

準確!這就是madth3在評論中所說的,它解決了我的問題,但你的答案更加精確!謝謝! –

+0

不客氣。請記住,如果您的系統上安裝了Java7,使用Netbeans,將源格式更改爲您希望的任何版本非常簡單。右鍵單擊您的項目,進入「屬性」,轉到「源」,然後使用「源/二進制格式」組合框進行選擇。 –

3

你要做的:

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

它應該工作的罰款!

+0

不,在Java7中沒有必要,自動理解重複。正確的答案來自madth3的評論:我的類名是ArrayList,這使編譯器感到困惑。不過謝謝你! –

1

更改類名稱如果您將其命名爲「ArrayList」。