Java 反射 根据方法名动态调用方法

最近在写一个数据接口,业务宽表有60几个字段,在生成mysql表对应的实体类时可以借助idea的datasource工具导出成员变量,这倒是方便了不少。但是随后在接口输出对象时,遇到了成员变量的动态选择问题,因为有时候只需要几个成员变量的值,如果整个对象所有成员变量生成json会造成不必要的字段填充。这块就想到了根据成员变量名字,运用反射机制动态调用成员函数。比起整个类的反射,这个相对简单。

//参数instance可以随便传需要的对象实例,methodName是类的public方法名
private Object getMethodO(Object instance, String methodName) {
       try {
           Method get = instance.getClass().getMethod(methodName);
           Object result = get.invoke(instance);
           return result;
       } catch (Exception e) {
           logger.error(e.getMessage());
       }
       return null;
   }

推荐阅读更多精彩内容