Sobes.tech
Junior

Come creare una variabile statica in Kotlin?

sobes.tech AI

Risposta dell'AI

In Kotlin non esiste un equivalente diretto alla parola chiave static di Java. Al suo posto, si usano:

  • companion object: Per creare membri "statici" della classe (campi e metodi). Sono legati alla classe, non a un'istanza specifica.
  • Funzioni e proprietà di livello pacchetto: Dichiarate a livello superiore del file (Top-level declarations) e accessibili ovunque senza la necessità di qualificare con il nome della classe.

Esempio con companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Costante di tempo di compilazione (come final static in Java)
        var instanceCount = 0 // Variabile legata alla classe
    }

    init {
        instanceCount++
    }
}

Esempio con proprietà di livello pacchetto:

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

fun incrementGlobalCounter() {
    globalCounter++
}

Differenze e scelta:

  • companion object è adatto per membri logicamente correlati alla classe.
  • I membri di livello pacchetto sono utili per utilità generali, costanti o variabili non legate a una classe specifica.
  • Per costanti di tempo di compilazione, usa const val all'interno di companion object o come dichiarazione di pacchetto.