Java 反射可以通过以下步骤获取对象的属性及属性值:

  1. 获取该对象的 Class 对象,即 Class.forName('类名') 或者对象.getClass()。

  2. 通过 Class 对象的 getDeclaredFields() 方法获取该类所有的属性(包括私有属性),返回的是 Field 数组。

  3. 遍历 Field 数组,可以通过 Field 对象的 getName() 方法获取属性名,通过 getType() 方法获取属性类型。

  4. 通过 Field 对象的 setAccessible(true) 方法设置可访问私有属性(如果有私有属性)。

  5. 通过 Field 对象的 get(Object obj) 方法获取该属性的值,其中 obj 为该属性所属的对象。

下面是一个示例代码:

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        Person person = new Person('Tom', 20);
        Class clazz = person.getClass();

        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true);
            System.out.println(field.getName() + ' = ' + field.get(person));
        }
    }
}

// 输出结果:
// name = Tom
// age = 20

上面的代码中,首先通过 person 对象获取其 Class 对象,然后通过 Class 对象的 getDeclaredFields() 方法获取该类所有的属性,接着遍历 Field 数组,依次输出每个属性的名字和值。注意,由于 name 属性是私有的,需要通过 setAccessible(true) 方法设置可访问。

Java 反射: 获取对象属性及属性值

原文地址: https://www.cveoy.top/t/topic/otqG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录