[日常]利用反射实现调用自定义方法

前言

最近在忙接入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中

之前只是听过反射,从未真正使用过,但是看到项目组里的大佬在用,于是请教一番,越发觉得反射的强大和便利

参考:如何使用反射

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值