Sobes.tech
Junior

Как да създадете статична променлива в Kotlin?

sobes.tech AI

Отговор от AI

В Kotlin няма директен еквивалент на ключовата дума static от Java. Вместо това се използват:

  • companion object: За създаване на "статични" членове на класа (поля и методи). Те са свързани с класа, а не с конкретен екземпляр.
  • Функции и свойства на ниво пакет: Обявяват се на най-високо ниво във файла (Top-level declarations) и са достъпни отвсякъде без необходимост от квалификация с името на класа.

Пример с companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Константа по време на компилация (като final static в Java)
        var instanceCount = 0 // Променлива, свързана с класа
    }

    init {
        instanceCount++
    }
}

Пример с свойства на ниво пакет:

// В файла MyGlobals.kt
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0

fun incrementGlobalCounter() {
    globalCounter++
}

Различия и избор:

  • companion object е подходящ за членове, логически свързани с класа.
  • Членовете на ниво пакет са полезни за общи помощни функции, константи или променливи, които не са свързани с конкретен клас.
  • За константи по време на компилация използвайте const val вътре в companion object или като декларация на пакет.