質問: Javaで書かれたプログラムで、あるクラスの変数がstatic final宣言されたものかどうか判断したい場合、簡単に調べられるような方法(もしくはAPI?)があるのでしょうか? よろしくお願いします。
回答: クラスやメンバー(メソッド・フィールド)の属性はModifierクラスで判断できます。 (例 ※myClassが対象クラス) ``` Class clazz = myClass.getClass(); Field[] fields=clazz.getDeclaredFields(); for (int i=0; i<fields.length; i++){ int mod=fields[i].getModifiers(); if(Modifier.isStatic(mod) && (Modifier.isFinal(mod))){ System.out.println("型:" + fields[i].getType() + " 変数名:" + fields[i].getName() + " はstatic finalです。"); } else { System.out.println("型:" + fields[i].getType() + " 変数名:" + fields[i].getName() + " はstatic finalではありません。"); } } ```