Sobes.tech
Junior

Kuidas luua Kotlinis staatiline muutuja?

sobes.tech AI

Vastus AI-lt

Kohalikus ekvivalenti Java static märksõnale Kotlinis ei ole otse olemas. Selle asemel kasutatakse:

  • companion object: Klassisiseste liikmete (väljade ja meetodite) loomiseks. Need on seotud klassiga, mitte konkreetse eksemplariga.
  • Paketitasandi funktsioonid ja omadused: Deklareerivad faili kõrgel tasemel (Top-level declarations) ja on kättesaadavad igal pool ilma klassi nime kvalifitseerimata.

Näide companion object-iga:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Kompileerimise ajal konstantne väärtus (nagu final static Java-s)
        var instanceCount = 0 // Muutuja, mis on seotud klassiga
    }

    init {
        instanceCount++
    }
}

Näide paketitasandi omadustest:

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

fun incrementGlobalCounter() {
    globalCounter++
}

Erinevused ja valik:

  • companion object sobib liikmetele, mis on loogiliselt seotud klassiga.
  • Paketitasandi liikmed on kasulikud üldiste utiliitfunktsioonide, konstantide või muutujate jaoks, mis ei ole seotud konkreetse klassiga.
  • Kompileerimise ajal konstantide jaoks kasutage const val companion object-i sees või paketdeklaratsioonina.