我的代码库是混合java和kotlin代码 . 我想在接口方法上使用@JvmOverloads和默认参数 . 像那样:
@JvmOverloads
fun getClientCompanyId(clientId: Long, date: DateTime = DateTime.now()): Long
不幸的是我不能这样做,我得到的信息是:
JvmOverloads不能用于接口方法
但是,如果我在重写函数上使用它,那么我得到
平台声明冲突:以下声明具有相同的JVM签名(getClientCompanyId(JLorg / joda / time / DateTime;)J):@ JvmOverloads public open fun getClientCompanyId(clientId:Long,date:DateTime = ...):Long @ JvmOverloads public open fun getClientCompanyId(clientId:Long,date:DateTime = ...):Long
并且仅用于记录:当我尝试将默认值放在重写方法中时,我得到以下消息:
不允许覆盖函数在其参数上指定默认值
在kotlin做一件事可能吗?感谢所有的答案 .
1 回答
我相信你能做的最好的事情就是自己定义重载 . 例如 . :