java - ArrayList.toArray() 抛出 NullPointerException

标签 java exception arraylist nullpointerexception

我在我的主类中声明了两个 ArrayList。一个是 Routine 对象的 ArrayList,另一个是 Routine 名称的 String 数组。每次构造例程时,例程名称以及存储在例程中的例程名称都会存储在名称数组列表中。

    static ArrayList <Routine> routineArrayList = new ArrayList <Routine> ();
    static ArrayList <String> Names = new ArrayList <String> ();                    

我创建了一个 JList 并使用字符串名称 arrayList 来填充它..

    list = new JList(Names.toArray());

一切都很好,我可以选择一个名称并选择相应的例程。

问题是每个例程都有它自己的名称数组列表。

我希望能够使用选定的例程并使用该例程内的名称填充 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?

干杯

最佳答案

方法ArrayList<String>.toArray()永远不应该抛出 NullPointerException ,所以这里的问题几乎可以肯定是 currentRoutinecurrentRoutine.Namesnull 。您需要检查填充 routineArrayList 的代码,确保其所有元素均非空且具有非空 Names字段。

关于java - ArrayList.toArray() 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916536/

相关文章:

wpf - 为什么 WPF 会吞下数据绑定(bind)异常?

php - PDO "exception safety"并将其写入 PHP 日志文件

java - 为什么只有我们尝试添加的最后一个值重复存储在数组列表中

java - Java 中的对象和数组列表

java - 如何将 arraylist 与数组一起使用?

java - java中main的返回类型

java - 如何在android中设置rgb颜色?

java - 从 java servlet 运行长进程的最佳方法是什么?

java - 如何从集合中删除

ruby - OptionParser 无缘无故地抛出 'Missing Argument'