java中怎么通过反射获取字段的值

avatar
作者
猴君
阅读量:0

通过反射获取字段的值,可以使用Java中的Field类的get()方法。

首先,需要获取字段对应的Class对象,然后再通过Class对象获取Field对象。接下来,可以使用Field对象的get()方法来获取字段的值。

下面是一个示例代码:

import java.lang.reflect.Field; public class ReflectExample { private int id; private String name; public static void main(String[] args) { ReflectExample example = new ReflectExample(); example.id = 1; example.name = "John"; try { // 获取Class对象 Class<?> clazz = example.getClass(); // 获取字段对象 Field idField = clazz.getDeclaredField("id"); Field nameField = clazz.getDeclaredField("name"); // 设置字段可访问 idField.setAccessible(true); nameField.setAccessible(true); // 获取字段的值 int idValue = (int) idField.get(example); String nameValue = (String) nameField.get(example); System.out.println("id: " + idValue); System.out.println("name: " + nameValue); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } } 

上述代码通过反射获取了ReflectExample对象的id和name字段的值,并打印输出。需要注意的是,在使用get()方法获取字段值之前,需要先设置字段为可访问,否则会抛出IllegalAccessException异常。

广告一刻

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