2011-02-20 52 views
2

我想向Java中的ArrayList添加一個字符串,但似乎無法使其工作。無法將字符串添加到ArrayList:「錯位的構造」

目前,我有以下代碼:

List food_names = new ArrayList(); 

food_names.add("pizza"); 

爲什麼我得到這些錯誤:

  • 語法令牌 「」 比薩 「」 錯誤,刪除此令牌
  • 令牌上的語法錯誤,錯位的結構(s)
+4

什麼語言? ArrayList至少存在Java和.NET。它看起來不像.NET錯誤。 –

+0

你在用什麼語言? Java的? – Henric

+0

這是Java,是的 – mellowg

回答

6

你必須在功能上使用food_names.add("pizza"),例如:

public void AddFood() 
{ 
    food_names.add("pizza"); 
} 

希望幫助

+1

謝謝。那樣做了。我不習慣這種嚴格的語言。我希望編譯器提供更多有用的錯誤消息。 – mellowg

+1

@mellowg - 學會和它一起生活。編譯器無法讀懂你的想法,搞清楚你真的想要做什麼。 (同樣的事情適用於非嚴格的語言......而且額外的好處是編譯器更可能決定代碼的含義,而不是你認爲你寫的。) –

+0

您的回答是正確的,但請堅持廣泛的Java約定 - 使用小寫字母作爲第一個方法名稱字符。見http://docstore.mik.ua/orelly/java-ent/jnut/ch07_01.htm – Timmos

3

我懷疑這些聲明是在一類的頂尖水平。第一個是在那裏,但第二個只能在代碼塊內;例如一個方法或構造函數體。請參閱@ tomasBull的答案,瞭解您可以在哪裏做到這一點的示例。

編譯器試圖解析food_names.add("pizza");作爲聲明,並且正在變得徹底困惑。

0

我不確定你是否正確初始化ArrayList。嘗試

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

還仔細檢查你已經導入ArrayList。或嘗試刪除比薩周圍的引號。 免責聲明:我可能是錯的,但我躺在牀上從我的手機打字,哈哈。祝你好運。

+0

感謝您的編輯,我的手機上的瀏覽器給我的問題。 – Amplify91

+0

找到你了,拉胡爾Phulore。 。 。 。 :d –

5

爲什麼不使用List Generics List接口。

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

food_names.add("pizza"); 

這不應該給任何錯誤。

0
Class Example 
{ 

//**Do not place it here.** 
List food_names = new ArrayList(); 
food_names.add("pizza"); 

public static void main(String[] args) 
{ 

//**You should place it here** 
List food_names = new ArrayList(); 
food_names.add("pizza"); 

} 


} 
2

還有另一種解決方案

food_names.add(new String("pizza"));