Quels sont les objets en Kotlin et comment sont-ils compilés?
sobes.tech IA
Réponse de l'IA
Les objets en Kotlin sont utilisés pour créer des singletons. Ils sont déclarés avec le mot-clé object.
object Singleton {
fun doSomething() {
println("Bonjour du singleton!")
}
}
Lors de la compilation, l'objet Kotlin Singleton est transformé en une classe Java Singleton avec un champ statique privé INSTANCE et un bloc d'initialisation statique.
// Exemple de code Java généré
public final class Singleton {
public static final Singleton INSTANCE; // Champ statique pour la seule instance
public final void doSomething() { // Méthode de l'objet
System.out.println("Bonjour du singleton!");
}
private Singleton() { // Constructeur privé pour empêcher la création d'autres instances
}
static { // Bloc d'initialisation statique
INSTANCE = new Singleton(); // Création de l'unique instance
}
}
Lorsqu'on appelle la méthode de l'objet Singleton.doSomething() en Kotlin, le compilateur génère un appel à la méthode statique Singleton.INSTANCE.doSomething() en Java.
En plus des objets normaux, Kotlin propose:
-
Objet compagnon (
companion object): Utilisé pour définir des membres statiques à l'intérieur d'une classe. On y accède via le nom de la classe. Chaque classe peut avoir au plus un objet compagnon.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Se compile en membres statiques de la classe en Java.
-
Expression d'objet (
object expression): Utilisée pour créer des objets anonymes (similaires aux classes anonymes en Java).val listener = object : MyInterface { override fun onClick() { println("Cliqué!") } }Se compile en une classe anonyme en Java.