• 締切済み

Javaでデリゲート

C#ではデリゲートで関数を変数的に扱うことが出来ますが Javaでそのようなことはできますか?

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.2

 呼び出し先の関数を実行時に動的に決定する方法としては、 以下のような感じになると思います。 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); }; }

回答No.1

この辺の話とか参考になる?(元質問についた回答とか含めて) http://pastaseca.blog119.fc2.com/blog-entry-53.html#more

bbooaa
質問者

お礼

ありがとうございます! インターフェイスを使ったやり方でやってみることにします。

関連するQ&A