CodeGuide icon indicating copy to clipboard operation
CodeGuide copied to clipboard

重学 Java 设计模式:实战适配器模式「从多个MQ消息体中,抽取指定字段值场景」

Open lulufeiacount opened this issue 3 years ago • 0 comments

笔误:

public class RebateInfo {

    private String userId;  // 用户ID
    private String bizId;   // 业务ID
    private Date bizTime;   // 业务时间
    private String desc;    // 业务描述
    
    // ... get/set
}
    public static RebateInfo filter(Map obj, Map<String, String> link) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        RebateInfo rebateInfo = new RebateInfo();
        for (String key : link.keySet()) {
            Object val = obj.get(link.get(key));
            RebateInfo.class.getMethod("set" + key.substring(0, 1).toUpperCase() + key.substring(1), String.class).invoke(rebateInfo, val.toString());
        }
        return rebateInfo;
    }

RebateInfo 类中的bizTimeDate类型,没法通在反射的时候指定参数类型为String调用此方法,会出现java.lang.NoSuchMethodException: 异常,应该是需要把bizTime定义为String类型吧,,亦或是如果需要做到适配其它类型的话,怎么做比较好一点呢?例如Integer/Double等等

lulufeiacount avatar May 27 '22 06:05 lulufeiacount