Kokie objektai yra Kotlin ir kaip jie kompiliuojami?
sobes.tech AI
Atsakymas iš AI
Kotlin objektai naudojami singleton'ų kūrimui. Jie deklaruojami naudojant raktinį žodį object.
object Singleton {
fun doSomething() {
println("Hello from singleton!")
}
}
Kotlin objekto Singleton kompiliuojamas į Java klasę Singleton, turinčią privačią statinę lauką INSTANCE ir statinį inicializacijos bloką.
// Pavyzdys sugeneruoto Java kodo
public final class Singleton {
public static final Singleton INSTANCE; // Statinis laukas vienetiniam egzemplioriui
public final void doSomething() { // objekto metodas
System.out.println("Hello from singleton!");
}
private Singleton() { // Privatūs konstruktorius, kad negalėtų būti sukurtas kitas egzempliorius
}
static { // Statinis inicializacijos blokas
INSTANCE = new Singleton(); // Vienetinės kopijos sukūrimas
}
}
Kotlin Singleton.doSomething() metodo iškvietimas Java kalba generuoja Singleton.INSTANCE.doSomething() iškvietimą.
Be įprastų objektų, Kotlin turi:
-
Kompanion objektą (
companion object): naudojamas statiniams nariams apibrėžti klasės viduje. Jiems prieinama per klasės pavadinimą. Kiekviena klasė gali turėti ne daugiau kaip vieną companion objektą.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Kompiliuojama į statinius klasės narius Java kalboje.
-
Objekto išraiškos (
object expression): naudojamos kuriant anoniminius objektus (kaip anoniminiai klasės Java kalboje).val listener = object : MyInterface { override fun onClick() { println("Clicked!") } }Kompiliuojama į anoniminius klases Java kalboje.