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 objecttinka 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 valvidujecompanion objectarba kaip paketo deklaraciją.