Junior — Middle
Μπορείτε να εξηγήσετε την αρχή λειτουργίας του μηχανισμού reified κλειδιού στο Kotlin;
sobes.tech AI
Απάντηση από AI
Στην 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 διαγράφεται κατά τη μεταγλώττιση.