簡略化: 2 つのクラス。X と Y。
Y は X を拡張します。
XI コール:
Y periodic;
次に、XI で Y の関数の 1 つを呼び出します。
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 ファイルから次のようなエラーが表示されます。
X.main(X.java:245) で
X.(X.java:71)でスレッド "main" java.lang.NullPointerExceptionで例外が発生しました
71行目は、私が電話したときに言及しています:
periodic.conditionDepreciate();
誰かがエラーの説明を手伝ってくれますか?
編集:
X に Y のさまざまな関数を呼び出してもらいたいのですが、これらはすべて基本的に定期的なイベント タイマーです。
もともとタイマーは X クラス ファイルにありましたが、読みやすくするために独自のクラス ファイルに移動しました。
このようなものを初期化する必要があるかどうかわかりません... Y は X を拡張するので、X からすべての値を取得する必要がありますか? (おもう...)
上記のタイマー関数の 1 つを投稿しました。Y クラス ファイルに ameba.health とは何かを伝える必要がありますか? また ?関数とクラスを調べるだけでいいと思います >.>