Sobes.tech
Junior — Middle

Czy możesz wyjaśnić zasadę działania kluczowego mechanizmu reified w Kotlin?

sobes.tech AI

Odpowiedź od AI

W Kotlinie mechanizm reified jest używany razem z funkcjami inline do zachowania informacji o typie podczas wykonywania, co zazwyczaj jest niemożliwe z powodu wymazywania typów (type erasure) w JVM.

Gdy funkcja jest zadeklarowana jako inline i parametr typu jest oznaczony jako reified, można używać tego typu bezpośrednio w ciele funkcji, na przykład do sprawdzania typu lub tworzenia instancji.

Przykład:

inline fun <reified T> isInstance(value: Any): Boolean {
    return value is T
}

fun main() {
    println(isInstance<String>("test")) // true
    println(isInstance<Int>("test")) // false
}

Bez reified taka kontrola nie jest możliwa, ponieważ typ T jest wymazywany podczas kompilacji.