Sobes.tech
Junior

Jak utworzyć zmienną statyczną w Kotlinie?

sobes.tech AI

Odpowiedź od AI

W Kotlinie nie ma bezpośredniego odpowiednika słowa kluczowego static z Javy. Zamiast tego używa się:

  • companion object: do tworzenia "statycznych" członków klasy (pól i metod). Są one powiązane z klasą, a nie z konkretną instancją.
  • Funkcje i właściwości na poziomie pakietu: Deklarowane na najwyższym poziomie pliku (Top-level declarations) i dostępne z dowolnego miejsca bez konieczności kwalifikacji nazwą klasy.

Przykład z companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Stała czasu kompilacji (jak final static w Javie)
        var instanceCount = 0 // Zmienna powiązana z klasą
    }

    init {
        instanceCount++
    }
}

Przykład z właściwościami na poziomie pakietu:

// W pliku MyGlobals.kt
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0

fun incrementGlobalCounter() {
    globalCounter++
}

Różnice i wybór:

  • companion object jest odpowiedni dla członków logicznie powiązanych z klasą.
  • Członkowie na poziomie pakietu są przydatni dla ogólnych narzędzi, stałych lub zmiennych niezwiązanych z konkretną klasą.
  • Dla stałych czasu kompilacji użyj const val wewnątrz companion object lub jako deklaracji pakietowej.