Junior
Hogyan hozhatunk létre statikus változót Kotlinben?
sobes.tech MI
Válasz az MI-től
Kotlinban nincs közvetlen megfelelője a Java static kulcsszónak. Ehelyett a következőket használják:
companion object: A "statikus" osztálytagok (mezők és metódusok) létrehozásához. Ezek a osztályhoz kötöttek, nem egy konkrét példányhoz.- Csomagszintű függvények és tulajdonságok: A fájl felső szintjén vannak deklarálva (
Top-level declarations), és bárhonnan elérhetők anélkül, hogy az osztály nevével kellene kvalifikálni őket.
Példa companion object-tel:
class MyClass {
companion object {
const val TAG = "MyClass" // Fordítási időben állandó (mint a final static Java-ban)
var instanceCount = 0 // Osztályhoz kötött változó
}
init {
instanceCount++
}
}
Példa csomag szintű tulajdonságokra:
// A MyGlobals.kt fájlban
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0
fun incrementGlobalCounter() {
globalCounter++
}
Különbségek és választás:
- A
companion objectalkalmas olyan tagokra, amelyek logikailag kapcsolódnak az osztályhoz. - A csomag szintű tagok hasznosak általános segédprogramok, állandók vagy nem egy adott osztályhoz kötött változók számára.
- Fordítási időben állandókhoz használja a
const val-t acompanion object-en belül vagy csomag deklarációként.