前言
最近在忙接入Modebus485设备的任务,接了几个后发现查询数据接口基本都是统一方法和参数,不清楚,开发工具类的同事为什么不提个接口出来呢,whatever,问题是我这边要调用这些重复的接口,会造成很多重复的代码,所以想着提取出来做一个公用的工具类.
一、解决方案
1.分析
因为所调用的方法名称和参数都是相同的(应当被优化为接口,但是为什么没有,idonkown ),通过反射的方法来解决重复调用的问题如下
2.解决
try {
Method queryData = clazz.getMethod("queryData", int.class, String.class, int.class, int.class, int.class, int.class);
queryData.invoke(clazz.newInstance(),***args***);
} catch (Exception e) {
log.warn(e.getMessage());
}
总结
上次使用反射,也是今天,在处理复杂的物模型属性数据时,以往是通过手动映射的方法来实现,最多就是在同事的指导下,学会了使用idea智能多选的方式来快速映射.正巧大佬在用反射实现物模型的映射,遂请教一二,并且在原来的基础上优化,避免了二次映射,直接将数据映射到目标json中
之前只是听过反射,从未真正使用过,但是看到项目组里的大佬在用,于是请教一番,越发觉得反射的强大和便利
参考:如何使用反射