JAVAのReflection
配列とか変数を、文字列で指定して設定できたら便利だな~と調べていたら、とうの昔からリフレクションという仕組みがあったらしい![]()
。今からでもおそくない!とお勉強を開始。しかし、ナカナカとうまく行かない
。チュートリアルもちゃんと読んで、ソースも似せて作ってるのに~![]()
。"NoSuchFieldException"やら”IllegalAccessException”とエラーがでて一向に進まない。ないじゃい!!!。
諦めかけていたそのとき、あtryブロックにいれないといけないのでは・・・とひらめいた![]()
。早速やってみた所、できた
。
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
}
こーんな感じで、文字列からそれと同じ名前の配列を使うことができるようになった。なかなか便利
。普段はプログラムの事なんで書かないんですが、この小さな一歩がとても嬉しくて書いてしまいました
。このコードは適当にくっつけたので、たぶん動きません。気持ちだけ伝わればいっかな~と
。
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
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- mixiが登録制に(2009.11.10)
- トラックボールを買う(Cordless Optical TrackMan TM-400)(2009.10.30)
- 「Dock Connector to USB Cable」(iPodtouchのUSBケーブル)を買ってみる(2009.10.23)
- ワイヤレスゲートに登録してみるが・・・(2009.10.22)
- 「GW-USMicroN-G」USBのアクセスポイント(2009.10.21)



コメント