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();
}
}
}
反射get和set属性的值
最新推荐文章于 2024-07-20 23:55:03 发布