Java 通过类的反射 获取 属性和值的方法
时间: 2023-12-10 07:38:44 浏览: 69
可以使用 Java 的反射机制来获取类的属性和属性值。下面是一个示例代码:
```java
import java.lang.reflect.Field;
public class ReflectDemo {
public static void main(String[] args) throws Exception {
// 创建一个 Person 对象
Person person = new Person("Tom", 18);
// 获取 Person 类的 Class 对象
Class cls = person.getClass();
// 获取所有的属性
Field[] fields = cls.getDeclaredFields();
// 遍历属性并输出属性名和属性值
for (Field field : fields) {
// 设置可以访问私有属性
field.setAccessible(true);
System.out.println(field.getName() + " = " + field.get(person));
}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
```
在上面的示例代码中,我们首先创建了一个 `Person` 对象,然后通过 `person.getClass()` 方法获取了 `Person` 类的 `Class` 对象。接着,我们调用 `cls.getDeclaredFields()` 方法获取了 `Person` 类的所有属性,然后通过遍历属性并调用 `field.get(person)` 方法获取 `person` 对象的属性值。需要注意的是,如果属性是私有的,我们需要先调用 `field.setAccessible(true)` 方法设置属性可访问。