2013-11-21 27 views
-2

我已經將一些項目導入到我的工作區中。它有一些hashmaps,arraylist等,它在這個代碼的<>部分有語法錯誤。定義新的HashMap <>()時出現語法錯誤;或新的ArrayList <>();

例如,數組列表的定義是ArrayList<String> bases = null;,但是當創建像bases = Arraylist<>();這樣的新實例時,它會得到語法錯誤。

我有jre1.7和JDK 7我的系統

+0

如果使用的是仿製藥,守你沒有指定類型參數......'= Arraylist ();' – Fenton

+0

在「=」符號之後是否有「new」這個詞?它在你的問題標題中,但不是你的問題主體。 –

+0

@DavidWallace它有新的= 我只是忘了寫有問題。我想它與我的日食偏好的東西!因爲這個項目適用於另一個系統或另一個日食! –

回答

2

bases = new ArrayList<>();

0

看起來像一個泛型類型的聲明上安裝,但它缺少的字母。嘗試用一個字母填充括號並在類標題中聲明該字母爲通用類型。

0

這個(<>)被稱爲鑽石算子(類型推理),它在1.7中被添加到Java中。在您的系統上安裝Java 7是不夠的,您的項目也應該使用Java,因此請使用IDE的項目設置中的Java 7。

+0

你的意思是在java構建路徑?我已經從該項目屬性更改爲Java 7,但問題仍然存在! –

0

鑽石只支持jdk7(及更高版本)。您的系統上安裝了jdk7。你應該確保你的IDE(eclipse?)爲你的項目使用jdk/jre7。

它也可能是你的問題中的錯字。你需要new關鍵字和ArrayList(大L)。

xxx = new ArrayList<>(); 
+0

我現在沒有任何其他JDK或JRE安裝在我的電腦上! –

0

如果你要使用原始類型,然後聲明並分配像以下:

ArrayList bases = null; 
bases = new ArrayList(); 

如果使用泛型和JDK7,然後聲明對象的類型進行存儲,並使用鑽石操作:

ArrayList<TYPE> bases = null; 
bases = new ArrayList<>(); 

更多信息:What is a raw type and why shouldn't we use it?

相關問題