как использовать @jvmoverloads с интерфейсом в Kotlin

Моя кодовая база представляет собой смешанный код 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

и только для записи: когда я пытаюсь установить значение по умолчанию в переопределенном методе, я получаю сообщение о том, что:

Функция переопределения не позволяет указывать значения по умолчанию для своих параметров

Возможно ли это в котлине? Спасибо за ответы на все вопросы.

Я считаю, что лучшее, что вы можете сделать, это определить перегрузки самостоятельно. например:

 fun getClientCompanyId(clientId: Long, date: DateTime): Long fun getClientCompanyId(clientId: Long) = getClientCompanyId(clientId, DateTime.now())