miki_csdn 2020-07-10 11:21 采纳率: 50%
浏览 277

导入项目到Eclipse后报错Erasure of method XXX(Class<T>, Map<String,String>) is the same as another method in type XXXUtils

代码在我导入的项目中Eclipse会报错Erasure of method convert(Class, Map) is the same as another method in type WeixinConvertUtils但是在同事的idea环境是没问题的 请问有人知道这个是什么原因导致的和解决方案吗

package org.jrx.framework.weixin.utils;

import java.util.Map;

import org.apache.log4j.Logger;
import org.jrx.framework.core.utils.ExceptionUtils;
import org.jrx.framework.weixin.dicts.WeixinParamDicts;
import org.jrx.framework.weixin.process.event.ProcessEvent;
import org.jrx.framework.weixin.process.event.ProcessMsgEvent;

/**
 * 微信转换工具类
 * @ProjectName jrx-weixin
 * @ClassName WeixinConvertUtils
 */
public class WeixinConvertUtils {
    private static final Logger logger = Logger.getLogger(WeixinConvertUtils.class);

    /**
     * 请求体转为处理事件
     * @Title: convert
     * @param <T>
     * @param clazz 处理事件类
     * @param requestMap    请求体
     * @return
     */
    public static <T extends ProcessMsgEvent> T convert(Class<T> clazz, Map<String, String> requestMap) {
        T o = null;
        try {
            o = clazz.newInstance();
            o.setOpenid(requestMap.get(WeixinParamDicts.FROM_USER_NAME));
            o.setOfficalAccount(requestMap.get(WeixinParamDicts.TO_USER_NAME));
            o.setCreateTime(requestMap.get(WeixinParamDicts.CREATE_TIME));
            o.setMsgType(requestMap.get(WeixinParamDicts.MSG_TYPE));
            o.setMsgId(requestMap.get(WeixinParamDicts.MSGID));
        } catch (InstantiationException e) {
            logger.error(ExceptionUtils.getExceptionMsg(e) + ":", e);
        } catch (IllegalAccessException e) {
            logger.error(ExceptionUtils.getExceptionMsg(e) + ":", e);
        }
        return o;
    }

    /**
     * 请求体转为处理事件
     * @Title: convert
     * @param <E>
     * @param clazz 处理事件类
     * @param requestMap    请求体
     * @return
     */
    public static <E extends ProcessEvent> E convert(Class<E> clazz, Map<String, String> requestMap) {
        E o = null;
        try {
            o = clazz.newInstance();
            o.setOpenid(requestMap.get(WeixinParamDicts.FROM_USER_NAME));
            o.setOfficalAccount(requestMap.get(WeixinParamDicts.TO_USER_NAME));
            o.setCreateTime(requestMap.get(WeixinParamDicts.CREATE_TIME));
            o.setMsgType(requestMap.get(WeixinParamDicts.MSG_TYPE));
            o.setEvent(requestMap.get(WeixinParamDicts.EVENT));
        } catch (InstantiationException e) {
            logger.error(ExceptionUtils.getExceptionMsg(e) + ":", e);
        } catch (IllegalAccessException e) {
            logger.error(ExceptionUtils.getExceptionMsg(e) + ":", e);
        }
        return o;
    }

}

  • 写回答

1条回答 默认 最新

  • 封印di恶魔 2020-07-10 15:14
    关注

    你这两个方法,方法名和参数都相同,只有返回值不同,在调用的时候java不知道你是要调用哪个方法,所以不允许有同名同参的方法,你可以随便改个名

    评论

报告相同问题?

悬赏问题

  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错