Sobes.tech
Junior

Kako napraviti statičku promenljivu u Kotlinu?

sobes.tech АИ

Одговор од АИ

U Kotlinu ne postoji direktan ekvivalent ključne reči static iz Jave. Umesto toga, koriste se:

  • companion object: Za kreiranje "statickih" članova klase (polja i metoda). Oni su povezani sa klasom, a ne sa konkretnim primerkom.
  • Funkcije i svojstva na nivou paketa: Deklarišu se na najvišem nivou fajla (Top-level declarations) i dostupni su od bilo gde bez potrebe za kvalifikacijom imena klase.

Primer sa companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Konstantna vrednost u vreme kompajliranja (kao final static u Javi)
        var instanceCount = 0 // Promenljiva povezana sa klasom
    }

    init {
        instanceCount++
    }
}

Primer sa svojstvima na nivou paketa:

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

fun incrementGlobalCounter() {
    globalCounter++
}

Razlike i izbor:

  • companion object je pogodan za članove koji su logički povezani sa klasom.
  • Članovi na nivou paketa su korisni za opšte pomoćne funkcije, konstante ili promenljive koje nisu povezane sa konkretnom klasom.
  • Za konstante u vreme kompajliranja koristite const val unutar companion object ili kao deklaraciju paketa.