私は誤った用語を持っている可能性がありますので、私はかなりJavaの新人です。Java - 親クラスを含むオブジェクトから拡張クラスを取得
私はLibGDXフレームワークを使用して、モバイルゲームを開発し、StageクラスとActorクラスを使用しようとしています。
Stageクラスの拡張である独自のクラスStageExtensionを作成しました。これは、自分のメソッドをいくつか追加したためです。だから私は持っていると言うことができます。
StageExtension stageExt = new StageExtension():
Actor actor = new Actor();
stageExt.addActor(actor);
これは完全に問題なく動作します。問題は、俳優からステージを取得して、自分のStageExtensionメソッドの1つを呼び出す場合です。 Actorはステージへの参照を保持しますが、ステージのみを保持します。 Actorクラスにはゲッターがあります。
public Stage getStage() {
return stage;
}
私はJavaをよく理解していません。ステージにアクタを追加すると、アクタのsetStage()が呼び出されるため、StageExtensionはアクタのステージとして正常に設定されます。これが起こると、Javaは拡張クラスを無視しますか?
これらのコアクラスをコピーして変更することなく、ActorからStageExtensionインスタンスを呼び出すにはどうすればよいですか?
これは理にかなっています。ありがとう。
にこのオブジェクトをキャストするのが最善です尽くすオブジェクトをキャストする必要があり、他の道を行くために、 ()。 – dumitru
速い応答をありがとう、私は実際にこれを試して、nullポインタの例外が、私は正しい応答だと思ったが、これは実際に動作する必要が追加します。私はもう一度やり直すだろう、多分私は間違ったことをした – hamham
nullポインタが 'Stage'を参照するのを避けるために、オブジェクトが正しいことを確認してください。 'stage stage = actor.getStage();'の後に 'if(stage instanceof StageExtension){StageExtension stageExt =(StageExtension)stage; ...} ' – flakes