[英]Calling class function from another class. Error
简化:两节课。 X和Y。
Y延伸X。
在XI通话中:
Y periodic;
然后在XI中调用Y的功能之一:
periodic.conditionDepreciate();
Y中的实际功能块为:
public void conditionDepreciate() {
ActionListener conditionDepreciation = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (ameba.health > 0) {
ameba.health -= 1;
}
}
};
new Timer(conditionDelayCount * 1000, conditionDepreciation).start();
}
但是,无论使用什么功能,我都会从X文件中收到一条错误消息:
线程“主”中的异常java.lang.NullPointerException
在X.(X.java:71)
在X.main(X.java:245)
当我打电话时,第71行指的是:
periodic.conditionDepreciate();
有人可以帮助解释该错误吗?
编辑:
我希望X调用Y的各种函数。基本上,所有这些都是周期性事件计时器。
我最初在X类文件中具有计时器,但是为了提高可读性,我将其移至其自己的类文件中。
我不确定需要使用类似的内容来初始化... Y扩展了X,因此它应该从X获取所有值吗? (我认为...)
我在上面发布了一个计时器函数-我需要告诉Y类文件ameba.health是什么吗? 要么 ? 我想我只需要查找函数和类>。
似乎没有periodic
引用的问题,因为您从未创建对象,例如
Y periodic = new Y();
大概periodic
值为空。 这是静态/实例字段的默认设置。 您需要为其分配一个非null的引用,然后才能通过它调用方法。 我们没有关于价值是什么足够的信息, periodic
应该是-你是否应该在某个地方创建一个新的实例,或者使用一个现有的-但呼吁空引用的方法会给出一个NullPointerException
...
如果您告诉我们您希望在哪个实例上调用该方法的更多信息,我们可能会提供进一步的帮助。
注意,此处Y
扩展X
的事实无关紧要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.