Iは、その後、私はI
そのような実装が呼び出しされたインターフェイスがクラスに渡されると、そのクラスのメソッドを呼び出すことができますか?
class Model implements I {
@Override
public int evaluate() {
return getX() + 1;
}
}
その実装を持つことができ、以下のインターフェース
public interface I {
public int evaluate();
}
と、次のクラス
public class A {
// ...
public int getX(){}
public int evaluateX(I model){
return model.evaluate();
}
}
があるとクラスA
のメソッド?
私はReflectionについて知っていますが、静的な手法について知りたいと思います。
ありがとうございます
ModelとIの関係はありますが、IとgetXの関係はどこにありますか? – Dakoda
私はリフレクションを使う以外の方法はないと思います。モデルの関数を呼び出すすべてのクラスが関数を実装する必要はないという事実について考える必要があります。なぜ、クラスAに代わりにインターフェイスを実装させるのはなぜですか? – Endzeit
意味のある名前は、あなたがしようとしていることを理解するのに役立ちます。インタフェースメソッドI.evaluate()が 'A.getX()'を呼び出すようにするには、Aオブジェクトを 'I.evaluate()'に渡します。 'class I {public int evaluate(A myA); } '。オプションで、Aオブジェクトをインタフェース型として渡して、I.evaluate()が複数の定義で動作できるようにすることもできます。 'class I {public int evaluate(IX myX); } '。 –