Sobes.tech
Junior — Middle

Como é que a reflexão é feita em Kotlin?

sobes.tech IA

Resposta da IA

Em Kotlin, o trabalho com reflexão é realizado através do pacote kotlin.reflect. A classe principal é KClass, que representa uma classe em tempo de execução. Através da reflexão, pode-se obter informações sobre propriedades, funções, construtores e anotações das classes.

Exemplo de como obter o nome da classe e a lista de suas propriedades:

import kotlin.reflect.full.memberProperties

class User(val name: String, val age: Int)

fun main() {
    val kClass = User::class
    println("Nome da classe: ${kClass.simpleName}")
    for (prop in kClass.memberProperties) {
        println("Propriedade: ${prop.name}")
    }
}

Também é possível invocar funções e criar instâncias através de reflexão, mas para isso às vezes é necessário usar a API de Reflection do Java (java.lang.reflect).

A reflexão é útil para análise dinâmica e trabalho com objetos, por exemplo, na serialização, DI ou ao escrever frameworks.