0

タイトルが推測するように、Java でこれを行うにはどうすればよいですか? 私がやろうとしているのは、このようなものです

最初にクラスがあります

public class MyFirstModel() {

    //standard constructor
    public MyFirstModel(){
            //some lines of codes
    }

    //A method
    public String getvalue() {

            //do something then
            return result;
    }
}

そして2番目のモデル(クラス)

public class MySecondModel() {

    //standard constructor
    public MySecondModel(){
            //some lines of codes
    }

    //A method
    public String getvalue() {

            //do something then
            return result;
    }
}

これらの 2 つのサンプル モデルを使用して、アクションに応じてクラスを渡したいと考えています。2 つのボタンがあり、最初のボタンがモデル用で、2 番目のボタンが 2 番目のモデル用であるとしましょう。渡される 3 番目のクラス:

 FinalClass fclass = new FinalClass(<class here>);  <-- how do i pass the class here

ここで、どうすればクラスに合格できますか?FinalClass では、そのコンストラクターは何でしょうか? 渡されたクラスのメソッドにアクセスするにはどうすればよいですか?

皆さんが私の言いたいことを理解してくれることを願っています。助けてください。

4

2 に答える 2

5

両方のモデルにインターフェースを実装させたくないですか?

MyModel.java:

public interface MyModel {
    public String getValue();
}

MyFirstModel.java:

public class MyFirstModel implements MyModel {
    public String getValue() {
        // stuff
    }
}

MySecondModel.java:

public class MySecondModel implements MyModel {
    public String getValue() {
        // stuff
    }
}

CallingClass.java:

public class CallingClass {
    private MyModel model = null;
    public CallingClass(MyModel model) {
        this.model = model;
    }
}

その後、必要に応じて MyModel を構築し、それを CallingClass に渡すことができます。

于 2012-08-03T14:17:49.047 に答える
0

次のインターフェイスを使用して、匿名オブジェクトを作成できます。

public interface FinalClass {
   // Method definitions
}

public class MyFirstModel() implements FinalClass {
    //...
}

public class MySecondModel() implements FinalClass {
    //...
}

使用する:

FinalClass fclass = new MyFirstModel();
// or
FinalClass fclass = new MySecondModel();
于 2012-08-03T14:18:22.230 に答える