我在主类中声明了两个 ArrayList。一个是例程对象的 ArrayList,另一个是例程名称的字符串数组。每次构造例程时,该例程名称以及存储在例程中的都存储在 Names 数组列表中。
static ArrayList <Routine> routineArrayList = new ArrayList <Routine> ();
static ArrayList <String> Names = new ArrayList <String> ();
我创建了一个 JList 并使用 String Names arrayList 来填充它..
list = new JList(Names.toArray());
一切顺利,我可以选择一个名称并选择相应的 Routine。
问题是每个例程都有自己的名称数组列表。
我希望能够使用选定的例程并使用该例程内的名称填充 JList。这就是我正在尝试的..
currentRoutine = routineArrayList.get(intChoice);
...
list = new JList(currentRoutine.Names.toArray()); ******** PROBLEM LINE
System.out.println(currentRoutine.Names.toArray())
给出完全相同的NullPointerException
.
它已经困扰了我一段时间,如果需要更多信息,我将竭诚为您提供任何帮助,我将尽力提供。
编辑
感谢您的回答,事实证明,主要问题是每个 Routine 对象内的名称数组未正确初始化。但是,问题仍然存在。
'System.out.println("Choice: " + currentRoutine.names.get(0)); // Or get(x)
和
'System.out.println("Choice: " + currentRoutine.names.toString()
两者都给出了他们应该做的。完整的名称数组或元素注意:'System.out.println("Choice: " + currentRoutine.names.toArray() 提供地址详细信息等。
但是,当我尝试
'list = new JList(currentRoutine.names.toArray());'
我得到相同的 NullPointerException?
干杯