温馨提示×

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

小亿
137
2023-09-07 17:52:42
栏目: 编程语言

在Java中,可以通过反射来获取属性的值。下面是一个示例代码:

import java.lang.reflect.Field;
public class ExampleClass {
private String name;
private int age;
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
ExampleClass obj = new ExampleClass();
obj.name = "John";
obj.age = 25;
// 获取属性的值
Class<?> clazz = obj.getClass();
Field nameField = clazz.getDeclaredField("name");
nameField.setAccessible(true);
Object nameValue = nameField.get(obj);
System.out.println("name: " + nameValue);
Field ageField = clazz.getDeclaredField("age");
ageField.setAccessible(true);
Object ageValue = ageField.get(obj);
System.out.println("age: " + ageValue);
}
}

此示例创建了一个名为ExampleClass的类,其中包含了nameage两个私有属性。通过反射,我们可以获取这两个属性的值。

首先,通过obj.getClass()获取到ExampleClassClass对象。然后,使用getDeclaredField()方法获取到nameage这两个属性的Field对象。

接下来,使用setAccessible(true)来设置私有属性的可访问性,然后通过get()方法获取属性的值。

最后,通过System.out.println()打印属性的值。

运行代码,将会输出以下结果:

name: John
age: 25

这样就成功通过反射获取了属性的值。

0