阅读量:1
使用Java反射获取对象属性值的步骤如下:
- 获取对象的Class对象,可以通过对象的getClass()方法获取。
Class<?> clazz = object.getClass();
- 获取属性的Field对象,可以通过Class对象的getField()、getDeclaredField()、getFields()、getDeclaredFields()等方法获取。
Field field = clazz.getDeclaredField("fieldName");
- 设置Field对象的accessible属性为true,以使得可以访问私有属性。
field.setAccessible(true);
- 使用Field对象的get()方法获取属性值。
Object value = field.get(object);
完整的示例代码如下:
import java.lang.reflect.Field; public class Main { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { MyClass myObject = new MyClass(); myObject.setField("Hello World"); Class<?> clazz = myObject.getClass(); Field field = clazz.getDeclaredField("field"); field.setAccessible(true); Object value = field.get(myObject); System.out.println(value); } static class MyClass { private String field; public void setField(String field) { this.field = field; } } }
上述示例代码中,通过反射获取了私有属性field的值,并输出到控制台上。