大佬告诉我java 反射如何获取成员变量的值

大佬告诉我java反射如何获取成员变量的值多点注释谢谢... 大佬告诉我java 反射如何获取成员变量的值多点注释谢谢 展开
 我来答
yinfengnong
2018-07-21 · TA获得超过5619个赞
知道大有可为答主
回答量:2344
采纳率:89%
帮助的人:2311万
展开全部

下例演示了通过反射获取 Test 类对象 t 的 iVal, strVal 成员变量的值:

import java.lang.reflect.Field;

class Test {

private int iVal;

private String strVal;

public Test(int iVal, String strVal) {
this.iVal = iVal;
this.strVal = strVal;
}
}

public class App {

public static void main(String[] args) {

// 创建一个 Test 对象
Test t = new Test(123, "Hello");

// 获取对象 t 的 Class 
Class<?> tt = t.getClass();

try {

// 获取 Test 类的 iVal 字段 Field
Field field = tt.getDeclaredField("iVal");

// 设置可访问
field.setAccessible(true);

// 获取 iVal 的值
int val = field.getInt(t);

System.out.println(val);


Field strValField = tt.getDeclaredField("strVal");
strValField.setAccessible(true);
String strVal = (String)strValField.get(t);
System.out.println(strVal);

} catch (NoSuchFieldException | SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}

}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式