- 締切済み
Javaでデリゲート
C#ではデリゲートで関数を変数的に扱うことが出来ますが Javaでそのようなことはできますか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
呼び出し先の関数を実行時に動的に決定する方法としては、 以下のような感じになると思います。 import java.awt.*; interface funcclass { String Func(); } class extbutton extends Button implements funcclass { public String Func() { return("ExtButton"); }; } class extlabel extends Label implements funcclass { public String Func() { return("ExtLabel"); }; } public class delegate { private static void CallFunc(funcclass fc) { System.out.println(fc.Func()); }; public static void main(String args[]) { extbutton ExtButton = new extbutton(); extlabel ExtLabel = new extlabel(); if (Math.random() > 0.5) CallFunc(ExtButton); else CallFunc(ExtLabel); }; }
- himajin100000
- ベストアンサー率54% (1660/3060)
この辺の話とか参考になる?(元質問についた回答とか含めて) http://pastaseca.blog119.fc2.com/blog-entry-53.html#more
お礼
ありがとうございます! インターフェイスを使ったやり方でやってみることにします。