Junior — Middle
Használható-e a lateinit módosítóval ellátott tulajdonság Kotlinban, és milyen előnyei vagy hátrányai vannak ennek?
sobes.tech MI
Válasz az MI-től
Kotlinban a lateinit módosítót általában olyan tulajdonságok késleltetett inicializálására használják, amelyek általában var típusúak, nem lehetnek null-ok, de nem kerülnek azonnal inicializálásra a deklarációkor. Ez például hasznos olyan tulajdonságok esetén, amelyeket később inicializálnak, például az Android onCreate metódusában.
Előnyök:
- Lehetővé teszi a nullable típusok és null ellenőrzések elkerülését.
- Kényelmes olyan tulajdonságok esetén, amelyeket nem lehet a konstruktorban inicializálni.
Hátrányok:
- Csak nem primitív típusokkal működik (például nem használható
Int,Booleanstb. esetén). - Ha a tulajdonsághoz hozzáférés történik az inicializálás előtt,
UninitializedPropertyAccessExceptionkivétel keletkezik.
Használati példa:
class Example {
lateinit var textView: TextView
fun setup() {
textView = TextView()
textView.text = "Hello"
}
}
Így a lateinit akkor hasznos, ha biztos vagy benne, hogy a tulajdonság az első használat előtt inicializálva lesz, és el akarod kerülni a nullable típusokat.