反射get和set属性的值

import java.lang.reflect.Field;
import com.google.common.base.CaseFormat;

import cn.hutool.json.JSONUtil;

/**
*@author:think_toomuch
*@Time:2022-09-29 13:48:04
*/
public class TestReflect {

	public static void main(String[] args) {
		DataSetMeta dataSetMeta=new DataSetMeta();
		PubDataSetMeta pubDataSetMeta=new PubDataSetMeta();
		pubDataSetMeta.setSpare1("spare1");
		//属性名转驼峰
		String fieldName=CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "SPARE_1");
		Class<DataSetMeta> clazzDataSetMeta = DataSetMeta.class;
		Class<PubDataSetMeta> clazzPubDataSetMeta = PubDataSetMeta.class;
        Field nameTargetDataSetMeta;
        Field namePubDataSetMeta;
		try {
			//反射得到对应的实体类属性
			nameTargetDataSetMeta = clazzDataSetMeta.getDeclaredField(fieldName);
			namePubDataSetMeta= clazzPubDataSetMeta.getDeclaredField(fieldName);
			//设置私有属性可以通过反射进行访问
			nameTargetDataSetMeta.setAccessible(true);
			namePubDataSetMeta.setAccessible(true);
			System.out.println("pubDataSetMeta对象的值:"+JSONUtil.parse(pubDataSetMeta));
			System.out.println("dataSetMeta对象反射之前的值:"+JSONUtil.parse(dataSetMeta));
			//set:对dataSetMeta对象的fieldName属性值设为namePubDataSetMeta.get(pubDataSetMeta)
			//get: 获取pubDataSetMeta对象的fieldName属性值
			nameTargetDataSetMeta.set(dataSetMeta,namePubDataSetMeta.get(pubDataSetMeta));
			
			System.out.println("dataSetMeta反射之后的值:"+JSONUtil.parse(dataSetMeta));
		} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
			e.printStackTrace();
		}	
	}	
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值