Sobes.tech
Junior — Middle

In welke gevallen kan de reified-modificator binnen inline-functies in Kotlin worden toegepast?

sobes.tech AI

Antwoord van AI

In Kotlin wordt de modifier reified alleen binnen inline functies toegepast en maakt het toegang mogelijk tot het type van de parameter tijdens runtime, wat normaal gesproken niet mogelijk is vanwege type erasure.

Het gebruik van reified is gerechtvaardigd wanneer:

  • Het type wordt gecontroleerd met is of !is.
  • Een instantie van het type wordt gemaakt via reflectie.
  • De klasse van het type T::class of T::class.java wordt verkregen.

Voorbeeld:

inline fun <reified T> Gson.fromJson(json: String): T {
    return this.fromJson(json, T::class.java)
}

Hier maakt reified het mogelijk om T::class.java binnen de functie te gebruiken, wat zonder inline en reified niet mogelijk is.