阅读量:0
要使用Java反射获取属性名和值,可以按照以下步骤进行操作:
获取类的Class对象:
Class clazz = object.getClass();
获取类的所有属性:
Field[] fields = clazz.getDeclaredFields();
遍历属性数组,获取属性名和值:
for (Field field : fields) { // 设置属性可访问,否则私有属性无法获取 field.setAccessible(true); String fieldName = field.getName(); Object fieldValue = field.get(object); System.out.println("属性名:" + fieldName + ",属性值:" + fieldValue); }
完整示例代码如下所示:
import java.lang.reflect.Field; public class ReflectionExample { public static void main(String[] args) { // 创建对象 Person person = new Person("Tom", 18, "Male"); // 获取类的Class对象 Class clazz = person.getClass(); // 获取类的所有属性 Field[] fields = clazz.getDeclaredFields(); // 遍历属性数组,获取属性名和值 for (Field field : fields) { // 设置属性可访问,否则私有属性无法获取 field.setAccessible(true); String fieldName = field.getName(); Object fieldValue; try { fieldValue = field.get(person); System.out.println("属性名:" + fieldName + ",属性值:" + fieldValue); } catch (IllegalAccessException e) { e.printStackTrace(); } } } } class Person { private String name; private int age; private String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } }
运行该示例代码,就可以获取到Person对象的所有属性名和值。