Comme nous le savons, Kotlin et Java sont inter-opérables. Lorsque j'essaie d'accéder à une variable statique Java à l'intérieur du code Kotlin, cela fonctionne, mais lorsque j'essaie d'accéder à un objet compagnon en Java, cela ne fonctionne pas.
Réponses
Trop de publicités?
Joffrey
Points
6838
Il n'y a pas de statics en Kotlin en soi.
Les propriétés de l'objet compagnon peuvent être accédées en Java en se référant explicitement à l'instance Companion
:
class MyKotlinClass {
companion object {
val someProperty = 42
}
}
En Java:
int someProperty = MyKotlinClass.Companion.getSomeProperty();
Vous pouvez également forcer Kotlin à générer du bytecode avec des membres statiques (pour Java) en utilisant une annotation spécifique à la JVM:
class MyKotlinClass {
companion object {
@JvmStatic
val someProperty = 42
}
}
En Java:
int someProperty = MyKotlinClass.getSomeProperty();
Agent_L
Points
1583