Sobes.tech
Middle

Jakie obiekty znasz w Kotlinie i jak są kompilowane?

sobes.tech AI

Odpowiedź od AI

  • Klasy danych: automatycznie generują equals(), hashCode(), toString(), copy() i inne przydatne metody. Kompilują się do zwykłych klas z nadpisanymi metodami.
  • Enumy: reprezentują stały zestaw stałych. Kompilują się do klas z polami statycznymi dla każdego elementu.
  • Klasy zamknięte: pozwalają zdefiniować ograniczoną hierarchię klas. Kompilują się do zwykłych klas z prywatnym konstruktorem i statycznymi instancjami dla każdego podklasy w tym samym pliku.
  • Obiekty: obiekty Singleton. Kompilują się do klasy z polem instancji statycznej i statycznym inicjalizatorem.

Przykład Object w Kotlin:

object MySingleton {
    fun doSomething() {
        // Logika
    }
}

Kompilacja do Java:

public final class MySingleton {
    public static final MySingleton INSTANCE;

    private MySingleton() {
    }

    public final void doSomething() {
        // Logika
    }

    static {
        INSTANCE = new MySingleton();
    }
}