2012-04-16 32 views
2

尝试实现MVC模式,继续回到NullPointerExceptionJava - MVC模式 - 绘制并克服空指针异常

我觉得我错过了一个技巧,当涉及到建立一个GUI区域,应该 根据用户输入重新绘制数据。例外指向这一点;

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

display是包含涂料方法的类的一个实例。在模型中描述了getDatagetSamples,并且基于应该更新用户输入到GUI的设置器。

我认为这个问题可能与数据集本来是空的,所以我给模型提供了初始条件。

+2

如果这真的是触发它的那一行,那么无论是'model'还是'display'都是'null' ...... – trutheality 2012-04-16 01:15:51

回答

2

NullPointerException意味着或者要调用不存在的(null)对象上的功能,或者一个函数调用可以故意抛出异常,如果它的一个参数是null。您需要检查是哪种情况,并在其周围放置一个if警戒线,否则确保对象有效。

1

NPE很容易找出一个有能力的IDE(例如IntelliJ)。使用调试器进行传递将使其变得清晰。

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

查看该行上的所有对象引用并查看哪一个为空。这是你未能初始化的那个。

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

如果传递给构造函数的newDataList为null,则会出现同样的问题。你不检查它。