- PR -

メソッドを動的に切り替える方法について

1
投稿者投稿内容
kon
会議室デビュー日: 2005/03/18
投稿数: 14
投稿日時: 2005-03-18 13:56
はじめまして、konといいます。

わからないことがあり、教えてください。

javaのプログラムの中で、メソッドを動的に切り替えたいのですが。

sample.setCount(2);
ような処理のメソッドの部分を変数にしたく、

str1="setCount";
sample.Method(str1)(2);
このようなような処理をしたいのですがよく解りません。

http://java-house.jp/ml/archive/j-h-b/011781.html#body
に、関連の内容があるのですが、理解できません。

どのたか、解るかた、教えてください。

環境:J2EE
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2005-03-18 14:17
java-houseは専門的な話しが多いですから
いきなり見ても理解できないかもしれませんねぇ。

googleで「java reflection」とかで検索すると結構
出てきますよ。

まずは「リフレクションとは?」から軽く調べてみては。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-03-18 14:44
取りあえずサンプルですが、
コード:
List list = new ArrayList();
String set = "test";
list.add(str);

Class c = list.getClass();
Method m = c.getMethod("get",new Class[]{int.class});

String get = (String) m.invoke(list,new Object[]{new Integer(0)});

※動作確認や例外処理とかはしていないので、自分で適当に実装してください。



コードの意味とか動きはjavadocの
java.lang.reflectパッケージを調べてみてくださいな。
メソッドの他にフィールドやコンストラクタも操作が可能なので、
勉強するだけでも面白いかも。
kon
会議室デビュー日: 2005/03/18
投稿数: 14
投稿日時: 2005-03-18 14:54
(株)ぽち様、かつのり様
回答ありがとうございます。

いただいたアドバイスより
http://www.gimlay.org/~javafaq/S031.html
http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html#メソッド呼出
http://muimi.com/j/reflection/
が参考になりました。

たま、提示してもらった、サンプルにより無事解決しました。

どうもありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)