2015-01-01 95 views
0

我目前正在學習數組,而我的課上的weblesson正在教我關於ArrayList類的內容。我試圖讓自己的數組嘗試一下,但是當我跟隨weblesson顯示給我的格式時,我得到一個編譯器錯誤,內容如下:「找不到適合add(java.lang.String)的方法」。突出顯示「.add」。ArrayList類.add錯誤

import java.util.ArrayList; 
public class String 
{ 
    ArrayList <String> myArrayList; 
    public void arrayTest() 
    { 
     ArrayList <String> names = new ArrayList <String>(); 

     names.add("John"); 
     names.add("Smith"); 
     names.add("Matt"); 

     System.out.println(myArrayList.get(1)); 
    } 
} 
+3

要回答關於NullPointerException的下一個問題:您創建了一個'ArrayList'並將其存儲在'names'引用中,然後您將其填充到數據中,但是在下一步中,您嘗試從未初始化的'myArrayList'引用讀取數據。 – Pshemo

+0

@Zak:請看我更新的答案。 – Jobs

回答

3

你的類是隱藏java.lang.String所以用於add方法和自定義String類的參數之間的類型不匹配。將其重命名爲String

1

問題可能是您的班級也被稱爲String。我猜你的ArrayList的通用類型是,而不是Java String

1

會發生什麼是您將您的類命名爲String,這會使編譯器感到困惑,因爲已經存在內置的String

你能做什麼?

  • 重命名你的類,以不同的東西:

    public class StringTest 
    
  • 或者使用完全合格的類名(這我不建議):

    ArrayList <java.lang.String> names = new ArrayList <java.lang.String>(); 
    
0

因爲你在命名你的班級String,所以在

ArrayList <String> names 

指的是您自定義的類類型。因此,只有您定義的'String'對象可以添加到ArrayList中,而不是實際的Java字符串。要改正這一點,命名你的類別的東西。