« 「三沢光晴お別れ会」に行ってくる | トップページ | 三沢さんのカード »

JAVAのReflection

配列とか変数を、文字列で指定して設定できたら便利だな~と調べていたら、とうの昔からリフレクションという仕組みがあったらしいhappy02sweat01。今からでもおそくない!とお勉強を開始。しかし、ナカナカとうまく行かないweep。チュートリアルもちゃんと読んで、ソースも似せて作ってるのに~sadannoy。"NoSuchFieldException"やら”IllegalAccessException”とエラーがでて一向に進まない。ないじゃい!!!。

諦めかけていたそのとき、あtryブロックにいれないといけないのでは・・・とひらめいたflaircoldsweats02。早速やってみた所、できたhappy02

try {
 Field[] flds = Common.class.getDeclaredFields();
 for(Field f : flds){
  Class c = f.getType();
if(c.isArray()){
f.setAccessible(true);
System.out.print(f.getName()+"\n");
System.out.print(c + "\n");
System.out.print(c.getComponentType() + "\n");
    
   String s = String.valueOf(c);
   if(s.indexOf("[[L") >= 0){ /
     System.out.println(f.getName() + "のデータが選択されたよ");
 Arr = String[][].class.cast(f.get(null));
}
catch (Exception e) {
// TODO: handle exception
}

こーんな感じで、文字列からそれと同じ名前の配列を使うことができるようになった。なかなか便利happy02。普段はプログラムの事なんで書かないんですが、この小さな一歩がとても嬉しくて書いてしまいましたnotes。このコードは適当にくっつけたので、たぶん動きません。気持ちだけ伝わればいっかな~とcoldsweats01

Sunの「Using Java Reflection」のページ
http://java.sun.com/developer/technicalArticles/ALT/Reflection/index.html

Sunのチュートリアル「The Reflection API」のページ
http://java.sun.com/docs/books/tutorial/reflect/index.html

|

« 「三沢光晴お別れ会」に行ってくる | トップページ | 三沢さんのカード »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/5390/45564249

この記事へのトラックバック一覧です: JAVAのReflection:

« 「三沢光晴お別れ会」に行ってくる | トップページ | 三沢さんのカード »