Junior — Middle
Можете ли да објасните принцип рада reified механизма у Kotlin-у?
sobes.tech АИ
Одговор од АИ
У Kotlin механизмот reified се користи заедно со inline функции за зачувување на информацијата за типот во време на извршување, што обично е невозможно поради бришењето на типови (type erasure) во JVM.
Кога функцијата е декларирана како inline и параметарот на типот е означен како reified, тој тип може директно да се користи во телото на функцијата, на пример, за проверка на типот или создавање на инстанци.
Пример:
inline fun <reified T> isInstance(value: Any): Boolean {
return value is T
}
fun main() {
println(isInstance<String>("test")) // true
println(isInstance<Int>("test")) // false
}
Без reified, таква проверка не е возможна, бидејќи типот T се брише при компилацијата.