Sobes.tech
Junior — Middle

Is het mogelijk om eigenschappen buiten de klasse-definitie in de Kotlin-taal te declareren?

sobes.tech AI

Antwoord van AI

In Kotlin worden eigenschappen meestal binnen de klasse-definitie gedeclareerd. Als je echter een eigenschap buiten de klasse wilt toevoegen, kun je gebruik maken van extensies (extension properties).

Extensies stellen je in staat om nieuwe eigenschappen of functies toe te voegen aan bestaande klassen zonder hun broncode te wijzigen.

Voorbeeld van een extensie-eigenschap buiten de klasse:

class User(val name: String)

// Extensie-eigenschap buiten de klasse
val User.firstChar: Char
    get() = this.name.first()

fun main() {
    val user = User("Anna")
    println(user.firstChar) // Drukt 'A' af
}

Belangrijk: extensie-eigenschappen kunnen geen toestand (backing field) hebben, dus moeten ze berekend worden (alleen met een getter of met een getter en setter, maar zonder veld).

Op deze manier kunnen eigenschappen buiten de klasse-definitie worden gedeclareerd via extensies, maar met beperkingen.