Sobes.tech
Junior

Jak vytvořit statickou proměnnou v Kotlinu?

sobes.tech AI

Odpověď od AI

V Kotlinu neexistuje přímý ekvivalent klíčového slova static z Javy. Místo toho se používají:

  • companion object: Pro vytváření "statických" členů třídy (polí a metod). Jsou vázány na třídu, nikoliv na konkrétní instanci.
  • Funkce a vlastnosti na úrovni balíčku: Deklarují se na nejvyšší úrovni souboru (Top-level declarations) a jsou dostupné odkudkoliv bez nutnosti kvalifikace názvem třídy.

Příklad s companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Konstantní hodnota při kompilaci (jako final static v Javě)
        var instanceCount = 0 // Proměnná spojená s třídou
    }

    init {
        instanceCount++
    }
}

Příklad s vlastnostmi na úrovni balíčku:

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

fun incrementGlobalCounter() {
    globalCounter++
}

Rozdíly a volba:

  • companion object je vhodný pro členy, které jsou logicky spojeny s třídou.
  • Členové na úrovni balíčku jsou užiteční pro obecné utility, konstanty nebo proměnné, které nejsou spojeny s konkrétní třídou.
  • Pro konstanty při kompilaci používejte const val uvnitř companion object nebo jako deklaraci balíčku.