Java 我有一个NullPointerException,即使我没有';没有任何空对象。为什么会这样?

Java 我有一个NullPointerException,即使我没有';没有任何空对象。为什么会这样?,java,nullpointerexception,Java,Nullpointerexception,我正在尝试用Java14为强化AI制作一个神经网络,我将主类和代理类分开以提高可读性。在main()方法中,我创建了一个新的代理对象,如第25行所示: AGENT agent = new AGENT(); 当我运行程序时,我希望在没有异常的情况下创建对象并运行一些函数调用,但是我得到了一个NullPointerException: Exception in thread "main" java.lang.NullPointerException at com.company

我正在尝试用Java14为强化AI制作一个神经网络,我将主类和代理类分开以提高可读性。在main()方法中,我创建了一个新的代理对象,如第25行所示:

AGENT agent = new AGENT();
当我运行程序时,我希望在没有异常的情况下创建对象并运行一些函数调用,但是我得到了一个NullPointerException:

Exception in thread "main" java.lang.NullPointerException
at com.company.AGENT.<init>(AGENT.java:19)
at com.company.Main.main(Main.java:25)
我很困惑,因为节点对象、神经网络变量或包含在神经网络数组中的ArrayList都不应该为空。我检查了一下我对神经网络阵列的定义是否有问题:

private ArrayList<Node>[] neural_network = new ArrayList[5];
private ArrayList[]神经网络=新的ArrayList[5];
但定义似乎还可以。最后,我检查了在ArrayList的定义中添加一个参数是否有帮助,或者从typecast中删除该参数是否有帮助,在这样做时,我得到了终止程序的错误,而不是从NullPointerException中得到的运行时错误。我不确定导致问题的null对象在哪里


要复制,请在Main()方法内的Main类中创建一个对象;在对象的类中,使用存储第三个对象的ArrayList数组创建一个私有变量,并将第三种类型的新对象添加到ArrayList。

您已初始化数组,但未初始化数组的元素。在代理构造函数中:

for(int i=0;i

在尝试添加节点之前。

您是否意识到
新建ArrayList[5]
正在创建一个可以包含5个
ArrayList
的数组?数组有5个空元素。这
ArrayList[]神经网络=新的ArrayList[5]仅为5个ArrayList留出空间;Java命名约定对除常量以外的大多数事物都使用驼峰大小写。变量和方法从小写开始(神经网络)。
private ArrayList<Node>[] neural_network = new ArrayList[5];