私のコードベースはjavaとkotlinのコードが混在しています。私は@ JvmOverloadsをデフォルトの引数でインターフェイスメソッドに使用したいと思います。そのような:Kotlinのインタフェースで@jvmoverloadsを使用する方法
@JvmOverloads
fun getClientCompanyId(clientId: Long, date: DateTime = DateTime.now()): Long
私は残念ながら、これを行うことができないと私はメッセージを取得:私はオーバーライドされた上でそれを使用する場合
JvmOverloadsしかし、インタフェースのメソッド
に使用することはできませんが関数を呼び出すと、私は得る
プラットフォーム宣言の衝突:次の宣言は、同じJVMを持っていますignature(getClientCompanyId(JLorg /ジョダ/時間/日時;)J):
- @JvmOverloads公共オープン楽しいgetClientCompanyId(のclientId:ロング、日付:日時= ...):ロング
- @JvmOverloads公共オープン楽しいgetClientCompanyId(のclientId:ロング、日付:日時= ...):ロング
、ちょうどレコードの:私はオーバーライドされたメソッドで、デフォルト値を配置しようとするとき、私はメッセージを取得している:
オーバーライド機能でパラメータのデフォルト値を指定することができません
kotlinで可能なことはありますか?すべての答えをありがとう。
同じ問題が発生しましたが、これまでに優れたソリューションを見つけましたか? – BlackCat
私が知る限り、存在しない – xklakoux