import java.lang.reflect.Field;
import com.google.common.base.CaseFormat;
import cn.hutool.json.JSONUtil;
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));
nameTargetDataSetMeta.set(dataSetMeta,namePubDataSetMeta.get(pubDataSetMeta));
System.out.println("dataSetMeta反射之后的值:"+JSONUtil.parse(dataSetMeta));
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41