java map反射和对象反射

数据是

T data

一、对象

对象反射先获取class

Class<? extends Object> tClass = data.getClass();

然后可以直接通过getDeclaredField获取field

field = tClass.getDeclaredField(xxx);

设置可以访问私有变量

field.setAccessible(true);

获取值

field.get(data)

赋值

final.set(data, "1111");

二、map

一般我常用HashMap,和对象不同map不能通过getDeclaredField访问变量,但是可以访问方法,

灵活化区别对象和map可以用类型判断

if(tClass == HashMap.class) 

取get方法和put方法来实现反射

Method get = tClass.getMethod("get", Object.class);
Method put = tClass.getMethod("put", Object.class, Object.class);

get取值

get.invoke(data, "xxx");

put放值

put.invoke(data, "xxx", "1111");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值