2010年10月29日金曜日

クラスに含まれるStaticフィールドの値を列挙してみる。

いつも忘れてしまう。
プリミティブ型の値範囲。
ちまちま書くのがめんどくさかったので、リフレクションを使って書いてみました。

再利用性はありません。あしからず。
でもtypeNames辺りに表示したいクラス名をいれてあげれば何でもいけちゃいます。

・・・ってかそろそろ値範囲覚えろよ。オレ。

package examples;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class ShowStaticField {

 /**
  * スタティックフィールドの値を表示します。
  * @param args
  */
 public static void main(String[] args) {
  //表示したいクラス名を列挙。
  //別に何のクラスでもOK。
  String[] typeNames= {
    "java.lang.Boolean",
    "java.lang.Character",
    "java.lang.Byte",
    "java.lang.Short",
    "java.lang.Integer",
    "java.lang.Long",
    "java.lang.Float",
    "java.lang.Double"    
  };
  
  for(int i=0 ; i < typeNames.length;i++ ){
   Class clazz;
   try{
    //列挙したクラスを取得。
    clazz = Class.forName(typeNames[i]);
    System.out.println("■"+clazz.getName()+"のStaticフィールド情報■");
    Field[] clazzFields = clazz.getFields();
    for(int j = 0 ; j < clazzFields.length ; j++ ){
     if(Modifier.isStatic(clazzFields[j].getModifiers())){
      System.out.println(clazzFields[j].getName()+":"+clazzFields[j].get(null));
     }
    }
   }catch(Exception e){
    e.printStackTrace();
   }
  }
  
 }
}



実行結果


■java.lang.BooleanのStaticフィールド情報■
TRUE:true
FALSE:false
TYPE:boolean


・(略)


0 件のコメント:

コメントを投稿