Java-MVC模式——绘制并克服空指针异常

Java-MVC模式——绘制并克服空指针异常,java,model-view-controller,Java,Model View Controller,尝试实现MVC模式时,请继续返回到NullPointerException 我觉得在设置GUI的一个区域时,我缺少了一个技巧 基于用户输入的replot数据。例外情况指向这一点 display.replot(model.getData(),model.getSamples()) display是包含绘制方法的类的实例getData和getSamples在模型中进行了描述,它们基于setter,setter应该随着用户对GUI的输入而更新 我认为问题可能在于数据集最初为空,因此我为模型提供了初始条

尝试实现MVC模式时,请继续返回到
NullPointerException

我觉得在设置GUI的一个区域时,我缺少了一个技巧 基于用户输入的replot数据。例外情况指向这一点

display.replot(model.getData(),model.getSamples())

display
是包含绘制方法的类的实例
getData
getSamples
在模型中进行了描述,它们基于setter,setter应该随着用户对GUI的输入而更新


我认为问题可能在于数据集最初为空,因此我为模型提供了初始条件。

NPE很容易通过一个功能强大的IDE(例如IntelliJ)解决。带调试器的传递将使其变得简单明了

即使没有,NPE也很容易理解,因为堆栈跟踪告诉您.java源文件和它发生的行号。您应该能够打开.java源文件,打开行号显示,然后直接转到错误的来源

查看该行上的所有对象引用,看看哪一个是空的。这就是您未能初始化的

在您的情况下,我看不到newPlot在哪里初始化。您只需声明名称和引用类型,但不要求它指向任何内容。默认值为空


如果传递到构造函数中的newData列表为null,您也会遇到同样的问题。您不检查它。

一个
NullPointerException
表示您正在对一个不存在的(
null
)对象调用一个函数,或者一个函数调用可以在其参数之一为
null
时故意抛出该异常。您需要检查哪种情况是这样的,或者在其周围放置一个
if
防护装置,或者确保对象有效。

如果这确实是触发它的行,则
model
display
null
。。。