我的代码库是混合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做一件事可能吗?感谢所有的答案.