Sobes.tech
Junior

Kaip sukurti statinę kintamąją Kotlin?

sobes.tech AI

Atsakymas iš AI

Kotlin nėra tiesioginio atitikmens Java static raktažodžiui. Vietoje to naudojami:

  • companion object: Norint sukurti "statinius" klasės narius (laukus ir metodus). Jie yra susieti su klase, o ne su konkrečiu pavyzdžiu.
  • Funkcijos ir savybės paketo lygyje: Deklaruojamos aukščiausio lygio faile (Top-level declarations) ir prieinamos iš bet kurios vietos be būtinybės kvalifikuoti jų vardą su klase.

Pavyzdys su companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Kompiliacijos metu nustatyta konstanta (kaip final static Java)
        var instanceCount = 0 // Klasės susieta kintamoji
    }

    init {
        instanceCount++
    }
}

Pavyzdys su paketo savybėmis:

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

fun incrementGlobalCounter() {
    globalCounter++
}

Skirtumai ir pasirinkimas:

  • companion object tinka nariams, kurie logiškai susiję su klase.
  • Paketo nariai naudingi bendriems pagalbininkų funkcijoms, konstantoms ar kintamiesiems, nesusijusiems su konkrečia klase.
  • Konstantiems, kurių reikšmė nustatoma kompiliacijos metu, naudokite const val viduje companion object arba kaip paketo deklaraciją.