@java.lang.NoSuchMethodError: com.kkit.oc.api.common.untils.DateUtil.DateToString(Ljava/util/Date;Lcom/kkit/oc/api/common/enums/DateStyle;)Ljava/lang/String;
错误场景:
调用自定义的时间比较工具类【com.kkit.oc.api.common.untils.CompareDateUtil#checkPlanDate】比较时间时触发
错误原因:
在api项目和service项目下分别定义了同包名,同路径的两个工具类,路径为【com.kkit.oc.api.common.untils.DateUtil】,具体如下图:
所以
- 在自定义的工具类(该工具类在api中)【com.kkit.oc.api.common.untils.CompareDateUtil】引用的是API里的DateUtil
- 而在实际调用自定义工具类【com.kkit.oc.api.common.untils.CompareDateUtil】的service中,就近使用到service中的DateUtil
- 两个DateUtil里引用的DateStyle路径还不同,如下图
总结:
在不同项目里有两个完全相同的类,且在该类中引用的同名属性路径还不同时,会报此错。
(能写出同时满足两个条件的代码也难得,真是前人挖坑,后人跳。无语~~ )
(上述内容,仅供参考!)