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/f5In 著作权归作者所有。请勿转载和采集!

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