簡體   English   中英

從另一個類調用類函數。 錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM