Millised objektid on Kotlinis ja kuidas neid kompileeritakse?
sobes.tech AI
Vastus AI-lt
Kotlin objektid kasutatakse singlontide loomiseks. Nad deklareeritakse võtmesõnaga object.
object Singleton {
fun doSomething() {
println("Hello from singleton!")
}
}
Kotlin objekti Singleton teisendatakse Java klassiks Singleton, millel on privaatne staatiline väli INSTANCE ja staatiline initsialiseerimisblokk.
// Näide genereeritud Java-koodist
public final class Singleton {
public static final Singleton INSTANCE; // Staatiline väli ühe eksemplari jaoks
public final void doSomething() { // objekti meetod
System.out.println("Hello from singleton!");
}
private Singleton() { // Privaatne konstruktor, et vältida teiste eksemplaride loomist
}
static { // Staatiline initsialiseerimisblokk
INSTANCE = new Singleton(); // Ühe eksemplari loomine
}
}
Kotlinis Singleton.doSomething() meetodi väljakutse puhul genereerib kompilaator Java-s Singleton.INSTANCE.doSomething() väljakutse.
Lisaks tavalistele objektidele on Kotlinil:
-
Kaassõna objekt (
companion object): kasutatakse staatiliste liikmete määratlemiseks klassi sees. Neile pääseb ligi klassi nime kaudu. Iga klass võib omada ainult ühte kaassõna objekti.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Muundub Java-s staatilisteks liikmeteks.
-
Objekti avaldis (
object expression): kasutatakse anonüümsete objektide loomisel (nagu Java anonüümklassid).val listener = object : MyInterface { override fun onClick() { println("Clicked!") } }Muundub Java-s anonüümseks klassiks.