Junior — Middle
Σε ποιες περιπτώσεις μπορεί να εφαρμοστεί ο τροποποιητής reified μέσα σε inline συναρτήσεις στο Kotlin;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, ο τροποποιητής reified εφαρμόζεται μόνο μέσα σε inline συναρτήσεις και επιτρέπει την πρόσβαση στον τύπο του παραμέτρου κατά την εκτέλεση, κάτι που γενικά δεν είναι δυνατό λόγω της διαγραφής τύπων (type erasure).
Η χρήση του reified είναι δικαιολογημένη όταν:
- Ελέγχετε τον τύπο με
isή!is. - Δημιουργείτε ένα στιγμιότυπο του τύπου μέσω ανακλάσεων.
- Λαμβάνετε την κλάση του τύπου
T::classήT::class.java.
Παράδειγμα:
inline fun <reified T> Gson.fromJson(json: String): T {
return this.fromJson(json, T::class.java)
}
Εδώ, το reified επιτρέπει τη χρήση του T::class.java μέσα στη συνάρτηση, κάτι που δεν είναι δυνατό χωρίς inline και reified.