Javaリフレクションを利用してオブジェクトのプロパティの値を取得するには?
Java リフレクションを使用してオブジェクトのプロパティ値を取得するには、以下の手順に従います。
- getClass()
Class<?> cls = obj.getClass();
- getDeclaredField()
Field field = cls.getDeclaredField("fieldName");
「fieldName」は、取得するプロパティ名です。
- アクセシビリティを有効にする
field.setAccessible(true);
- get()を用いたネイティブな日本語での言い換え: 取得する
Object value = field.get(obj);
オブジェクトインスタンスを表すobj
以下の完全なサンプル コードをご参照ください。
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws Exception {
// 创建对象实例
User user = new User("Alice", 18);
// 获取对象的Class对象
Class<?> cls = user.getClass();
// 获取属性对象
Field nameField = cls.getDeclaredField("name");
Field ageField = cls.getDeclaredField("age");
// 设置属性的访问权限
nameField.setAccessible(true);
ageField.setAccessible(true);
// 获取属性值
Object nameValue = nameField.get(user);
Object ageValue = ageField.get(user);
System.out.println("name: " + nameValue);
System.out.println("age: " + ageValue);
}
}
class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
}
これにより、Javaの反射を使用してオブジェクトのプロパティ値を取得できます。