怎么用java反射获取属性名和值

avatar
作者
筋斗云
阅读量:0

要使用Java反射获取属性名和值,可以按照以下步骤进行操作:

  1. 获取类的Class对象:

    Class clazz = object.getClass(); 
  2. 获取类的所有属性:

    Field[] fields = clazz.getDeclaredFields(); 
  3. 遍历属性数组,获取属性名和值:

    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对象的所有属性名和值。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!