javaの反射でboolプロパティを設定するには

リフレクションを使用して、ブール値プロパティを設定する手順は次のとおりです。

  1. 操作対象のクラスの情報を取得します。対象のクラスが提供する`getClass()` メソッドから取得できます。
  2. ClassオブジェクトのgetMethod()メソッドで操作するbooleanプロパティに対応するsetterメソッドを取得する。メソッド名は一般的に「set」で始まり、それにプロパティ名が続く。例えば、プロパティ「isFlag」を操作するときは、対応するsetterメソッドは「setFlag()」となる。
  3. setterメソッドを呼び出すには、Methodオブジェクトのinvoke()メソッドを使用し、設定する値を渡します。

以下にサンプルコードを示します。

public class MyClass {
    private boolean flag;

    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        MyClass obj = new MyClass();

        // 获取Class对象
        Class<?> clazz = obj.getClass();

        // 获取setter方法
        Method setter = clazz.getMethod("setFlag", boolean.class);

        // 调用setter方法设置属性值
        setter.invoke(obj, true);

        // 验证属性值是否设置成功
        System.out.println(obj.isFlag());  // 输出:true
    }
}

アクセス権を持つフィールドに対してリフレクションでセットしようとする場合には、アクセシビリティに注意が必要です。アクセシビリティが適切でない場合には、 `IllegalAccessException` が発生します。 `setAccessible(true)` メソッドを使ってアクセシビリティを設定することができます。例えば、プライベートフィールド `flag` に対してセッターを取得した場合、セッターの `setAccessible(true)` を呼び出してアクセシビリティを設定できます。

bannerAds