关于使用反射修改类中成员变量

这边是需要对已经查出来的数据根据权限删除掉用户无权查看的数据

所以想到了使用反射拿到对应的set方法

 Iterator<Map.Entry<String, Integer>> authIterator = authMap.entrySet().iterator();
 while (authIterator.hasNext()){
     Map.Entry<String,Integer> entry=authIterator.next();
     if (entry.getValue()==0){
         delNames.add(entry.getKey());
     }
 }
     Class<? extends UserResumeInfo> resumeInfoClass = userResumeInfo.getClass();
     for (String delName : delNames) {
         Method method = resumeInfoClass.getMethod("set" + delName);
         method.invoke(userResumeInfo, (Object) null);
     }
     return userResumeInfo;

这里遍历了权限集合。判断了权限为0的项目。并调用set方法对属性进行清空;

但是这里报错


检查成员变量名以后发现没有问题,后来设置为get发现能正常获取数据;所以应该是不能写入可以读取,,突然想到这玩意有一个写保护开关,默认是false的。我们需要给他设置为true。这样就可以进行修改写入了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值