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