怎么通过java反射获取对象属性值

avatar
作者
筋斗云
阅读量:0

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

  1. 获取对象的Class对象:使用getClass()方法获取对象的Class对象,例如:
Class<?> cls = obj.getClass(); 
  1. 获取对象的属性:使用getDeclaredField()方法获取指定名称的属性对象,例如:
Field field = cls.getDeclaredField("fieldName"); 

其中,"fieldName"为需要获取的属性名称。

  1. 设置属性的访问权限:如果属性是私有的,需要设置属性的访问权限为可访问,使用setAccessible(true)方法设置属性的可访问性,例如:
field.setAccessible(true); 
  1. 获取属性的值:使用get()方法获取属性值,例如:
Object value = field.get(obj); 

其中,obj为对象实例。

完整示例代码如下:

import java.lang.reflect.Field;  public class Main {     public static void main(String[] args) throws Exception {         // 创建对象实例         User user = new User("Alice", 18);          // 获取对象的Class对象         Class<?> cls = user.getClass();          // 获取属性对象         Field nameField = cls.getDeclaredField("name");         Field ageField = cls.getDeclaredField("age");          // 设置属性的访问权限         nameField.setAccessible(true);         ageField.setAccessible(true);          // 获取属性值         Object nameValue = nameField.get(user);         Object ageValue = ageField.get(user);          System.out.println("name: " + nameValue);         System.out.println("age: " + ageValue);     } }  class User {     private String name;     private int age;      public User(String name, int age) {         this.name = name;         this.age = age;     } } 

这样就可以通过Java反射获取对象的属性值了。

广告一刻

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