Si vous essayez d'appeler une méthode qui a les arguments par défaut de Kotlin à partir de Java, vous obtiendrez une erreur.
Annoter @ JvmOverloads
Côté Kotlin
class Foo {
@JvmOverloads fun bar(str: String = "A"): String {
return str
}
}
Côté Java
Foo foo = new Foo();
foo.bar(); // "A"
foo.bar("B"); // "B"
@ JvmOverloads
lorsqu'elle n'est pas annotéejava.lang.IllegalArgumentException: Parameter specified as non-null contains null
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-overloads/index.html
Recommended Posts