这几天有小伙伴跟我反馈,有一个项目从 kotlin 1.2 升级到 kotlin 1.3 以后 Spring 项目无法启动,报 java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'xxx' method 错误,下面咱们一个个分析排查
没有引入任何其它变量,只是更改了 kotlin 的版本,猜测可能是编译出来的字节码不一样,出问题的函数如下。
@OptionalAuthAPI@GetMapping("/page")fun getActivityGameModulePage( @OptionalAuthRes authRes: OptionalAuthResDTO, @RequestParam(name = "type", defaultValue = "0") type: Int = 0, @RequestParam(name = "page", defaultValue = "0") page: Int = 0, @RequestParam(name = "pageSize", defaultValue = "30") pageSize: Int = 0): APIResult<Page<ActivityGameModuleRespDTO>> { return;}
kotlin 处理函数中 default 值的方法是生成一个静态的函数,比如下面的函数。
c