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()メソッドを呼び出すことで確認できます。