我已經在我的主類中聲明瞭兩個ArrayLists。一個是Routine對象的ArrayList,另一個是例程名稱的String數組。每次構建例程時,例程名稱以及存儲在例程中的名稱都將存儲在Names arrayList中。ArrayList.toArray()拋出NullPointerException異常
static ArrayList <Routine> routineArrayList = new ArrayList <Routine>();
static ArrayList <String> Names = new ArrayList <String>();
我創建了一個JList和使用字符串名稱的ArrayList來填充它..
list = new JList(Names.toArray());
一切都很好,我可以選擇一個名字,並選擇相應的程序。
問題,是每個例程,都有它自己的ArrayList的名稱。
我希望能夠使用選定的例程並使用INSIDE該例程填充JList。這就是我試圖..
currentRoutine = routineArrayList.get(intChoice);
...
list = new JList(currentRoutine.Names.toArray()); ******** PROBLEM LINE
System.out.println(currentRoutine.Names.toArray())
給人如出一轍NullPointerException
。
它一直在我身上徘徊了一段時間,如果需要更多的信息,任何幫助將同樣真誠地感謝我會盡我所能提供它。
編輯
謝謝您的回答,原來的主要問題是,每一個函數對象內部名稱陣列沒有正確initalized。但是,問題仍然存在。
'System.out.println("Choice: " + currentRoutine.names.get(0)); // Or get(x)
和
'System.out.println("Choice: " + currentRoutine.names.toString()
都給予正是他們應該。完整的名稱數組或元素 注:「的System.out.println( 「選擇:」 + currentRoutine.names.toArray()給出的詳細地址等
然而,當我嘗試
'list = new JList(currentRoutine.names.toArray());'
我得到同樣的NullPointerException異常?
乾杯
難道是currentRoutine(或)名稱爲空? – kosa
「名稱」和「routineArrayList」故意是「靜態」它應該真的是一個類變量而不是一個實例變量? – amit
如果每個'Routine'都有自己的名稱列表,那麼爲什麼'Names'' static'?順便說一下,它應該被命名爲'names'。大寫名稱通常保留給Java中的類型。 –