Javaリフレクションを使用して、オブジェクトの属性値を設定する方法

Javaの反射機能を利用して、java.lang.reflect.Field クラスを通じてオブジェクトのプロパティに値を設定できます。以下に、その方法を示すサンプルコードを示します。

import java.lang.reflect.Field;

public class Main {
    public static void main(String[] args) throws Exception {
        // 创建对象
        Person person = new Person();

        // 获取属性
        Field nameField = Person.class.getDeclaredField("name");

        // 设置属性可访问性
        nameField.setAccessible(true);

        // 给属性赋值
        nameField.set(person, "John");

        // 输出属性值
        System.out.println(person.getName()); // 输出: John
    }
}

class Person {
    private String name;

    public String getName() {
        return name;
    }
}

上記のコード例では、まずPersonオブジェクトが生成されています。次に、Person.class.getDeclaredFieldメソッドを使用して、Personクラスのname属性を取得しています。プライベートな属性にアクセスできるようにするには、Field.setAccessible(true)メソッドを呼び出してアクセス可能にする必要があります。最後に、Field.setメソッドを呼び出して、属性値を「John」に設定しています。属性値が正常に設定されたかどうかは、person.getName()メソッドを呼び出すことで確認できます。

bannerAds