Modifierを使ってメンバ変数の修飾子を判断する

java

前にクラス内のメンバ変数名を全て取得する方法を紹介しました。
今回は、Modifierを使って、全て取得したメンバ変数の修飾子を判断する方法を紹介します。

[スポンサーリンク]

メンバ変数が、privatepublicであるかを判断した後、
メンバ変数が、static変数であるかも判断するソースを紹介します。

メンバ変数の修飾子を判断するソース

public class MemberVariableModifier {

    /**
     * メンバ変数の修飾子を判別する。
     */
    public static void main(String arg[]) {
        for (Field field : Example.class.getDeclaredFields()) {

            if (Modifier.isPrivate(field.getModifiers())) {
                if (Modifier.isStatic(field.getModifiers())) {
                    System.out.print("private static : " + field.getName() + "\n");
                } else {
                    System.out.print("private : " + field.getName() + "\n");
                }
            } else if (Modifier.isPublic(field.getModifiers())) {
                if (Modifier.isStatic(field.getModifiers())) {
                    System.out.print("public static : " + field.getName() + "\n");
                } else {
                    System.out.print("public : " + field.getName() + "\n");
                }
            }
        }
    }

    public static class Example {
        public String name;
        public Integer id;
        private String privateName;
        private static Integer privateId;
    }
}

実行結果

>実行結果
public : name
public : id
private : privateName
private static : privateId

解説

修飾子の判断は、Modifierを使って判断しています。
今回は、public、private、staticの3つを判断していますが、Modifierには他にも修飾子を判断するためのメソッドが用意されています。

Modifierの他メソッドについては、Modifierの公式javadocを参照して下さい。