0

私のコードには 10 個の特定のメソッドがあり、次のようなクラス オブジェクトでそれらを使用したいと考えています。

void function(){
//do Something that I want
}

class PoseAction{

Pose pose;

void methodDesirable();

PoseAction(Pose ps, Method function()){

  this.pose = ps;
  this.methodDesirable() = function();
}

}

したがって、新しいオブジェクトを作成するとき

PoseAction ps = new PoseAction(pose1, action1());

ps.methodDesirable() の呼び出し;

action1() 関数を呼び出します。

これを行うことは可能ですか?

前もって感謝します!

4

2 に答える 2

0

関数は Java のファースト クラス オブジェクトではありません。つまり、それらを直接割り当てたり、メソッド パラメーターとして渡したりすることはできません。オブジェクトとインターフェースを使用する必要があります。

interface Action {
    void fire(Pose pose);
}

class PoseAction {
    Action action;
    Pose pose;

    void methodDesirable() {
        action.fire(pose)
    }

    PoseAction(Pose ps, Action a) {
        pose = ps;
        action = a;
    }
}

そして、次のように使用します。

PoseAction ps = new PoseAction(pose1, new Action() {
     public void fire(Pose pose) {
          action1(pose);
     }
};
ps.methodDesirable();
于 2013-07-26T20:32:41.220 に答える