これはフレーズが非常に難しいですが、特定のメソッドをオブジェクトにリンクできる必要があります。具体的には、グラフィック指向のGUIを作成しています。ボタンなどの要素のデフォルトの「アクション」関数として任意のメソッドを割り当てることができるようにしたいと考えています。Javaでメソッド参照を渡す方法はありますか?
つまり、私は基本的に自分自身を描く能力を持っているこれらのインターフェイス「グラフィックス」オブジェクトを作成しました。各要素は、それ自身を呼び出します
b1.action();
b2.action();
:私はのような何かを行う場合は、次に
GraphicObject b1 = new Button();
GraphicObject b2 = new Button();
b1.assignDefaultAction(---some method reference here--);
b2.assignDefaultAction(---a different method reference here--);
:私は、彼らが自分のアクションを処理したいと思いますので、私は、例えば、このような何かを行うことができます独立して参照されるメソッドです。私はこれがC++でできると信じていますが、私はJavaでそれを見ていません。それは可能なのでしょうか、あるいは何らかの回避策がありますか?私が避けようとしていることは、私がやる必要のある小さなことごとに抽象化を作成しなければならないか、100枚の仕様で私の入っているJPanelを捨てるだけです。
ありがとうございました。
真わけではありません。 JavaにはMethodオブジェクトがあります。http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.htmlを参照してください。しかし、duffymoが言及しているように、代わりにActionListenersを使用することをお勧めします。 – GreyBeardedGeek
Hmmm、反映されたMethodをメソッド参照と同じにするかどうかわかりません。それを呼び出すには、そのクラスを含むクラスのインスタンスが必要です。また、メソッドReflectionを使用した場合、メソッドのシグネチャを強制するのは難しいでしょうか? – Perception
合意 - これが、ActionListenerが推奨されるソリューションになる理由です。 – GreyBeardedGeek