从另一个类调用类函数。错误

时间:2012-05-12 17:53:28

标签: java function nullpointerexception extends

简化为: 两节课。 X和Y。

Y延伸X。

在X中我打电话:

    Y periodic;

然后在X中我调用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文件的错误:

  

线程“main”中的异常java.lang.NullPointerException
  在X.(X.java:71)
  在X.main(X.java:245)

第71行是指我打电话时:

periodic.conditionDepreciate();

有人可以帮忙解释错误吗?

编辑:

我希望X调用Y的各种函数。这些基本上都是周期性事件计时器。

我最初在X类文件中有定时器,但为了帮助提高可读性,我移动到了自己的类文件中。

我不确定这样的东西需要初始化... Y扩展X所以它应该从X得到它的所有值? (我想......)

我发布了上面的一个计时器函数 - 我是否需要告诉Y类文件ameba.health是什么?要么 ?我想我只需要查找函数和类>。>

2 个答案:

答案 0 :(得分:5)

似乎是periodic引用的问题,因为你从不创建对象,比如

Y periodic = new Y();

答案 1 :(得分:2)

假设periodic的值为null。这是静态/实例字段的默认值。在通过它调用方法之前,需要为其指定非空引用。我们没有足够的信息来了解periodic 应该的价值 - 您是应该在某处创建新实例,还是使用现有实例 - 而是调用方法null引用将给出NullPointerException ...

如果您告诉我们更多关于您预期要调用的方法的实例,我们可以提供进一步的帮助。

请注意,Y扩展X的事实与此无关。