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 objectjest 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 valwewnątrzcompanion objectlub jako deklaracji pakietowej.