Parameter Tipe reified: Mengakses T saat Runtime
Gunakan reified bersama fungsi inline untuk melakukan pemeriksaan dan cast tipe saat runtime.
Parameter Tipe reified: Mengakses T saat Runtime adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.
Masalah Penghapusan Tipe
Kotlin/JVM menghapus informasi tipe generik saat program berjalan. Di dalam fungsi generik fun , Anda tidak dapat menulis T::class atau is T — JVM tidak mengetahui apa itu T setelah kompilasi.
reified sebagai Solusi
Gabungkan inline dengan reified pada parameter tipe. Karena fungsi tersebut disebariskan, compiler mengganti parameter itu dengan tipe sebenarnya di setiap lokasi pemanggilan — sehingga T dapat diakses sepenuhnya saat program berjalan.
inline fun <reified T> isInstance(value: Any): Boolean = value is T
val result = isInstance<String>("hello") // trueMemeriksa Tipe dengan is T
Tanpa reified, is T menyebabkan kesalahan saat kompilasi ("Tidak dapat memeriksa instans dari tipe yang dihapus"). Dengan reified, kompilator menulis ulang pemeriksaan tersebut menggunakan tipe konkret yang diberikan di lokasi pemanggilan.
inline fun <reified T> filterByType(list: List<Any>): List<T> =
list.filterIsInstance<T>()Memperoleh KClass dari T
Anda dapat memperoleh KClass dari parameter tipe menggunakan T::class. Hal ini memungkinkan pemeriksaan tipe tanpa refleksi dan penerusan referensi kelas ke API.
inline fun <reified T> className(): String = T::class.simpleName ?: "Unknown"
println(className<Int>()) // "Int"Penguraian dengan reified
Pola yang umum adalah pembantu parseJson yang aman secara tipe dan menerima kelas target secara otomatis:
inline fun <reified T> parseJson(json: String): T =
jacksonObjectMapper().readValue(json, T::class.java)Pola ViewModel / Pencari Layanan
Kontainer injeksi dependensi sering menggunakan reified untuk mengembalikan instans yang benar tanpa mengharuskan Anda meneruskan argumen Class:
inline fun <reified T : ViewModel> Fragment.viewModel(): T =
ViewModelProvider(this)[T::class.java]Memanggil API Java dengan Class<T>
Banyak API Java memerlukan argumen Class. reified memungkinkan Anda memanggilnya tanpa memaksa pemanggil meneruskan kelas secara eksplisit:
inline fun <reified T> Gson.fromJson(json: String): T =
fromJson(json, T::class.java)reified dan Batasan Tipe
Anda dapat menggabungkan reified dengan batas atas:
inline fun <reified T : Any> create(): T =
T::class.java.getDeclaredConstructor().newInstance()Keterbatasan
Parameter tipe reified hanya berfungsi dalam fungsi inline—bukan dalam kelas, antarmuka, atau fungsi non-inline. Anda tidak dapat memanggil fungsi reified dengan tipe yang hanya diketahui saat waktu berjalan.
Cara Kompilator Menerapkannya
Di setiap lokasi pemanggilan, kompilator mengganti T dengan argumen tipe sebenarnya. Kode byte di lokasi pemanggilan berisi referensi langsung ke kelas konkret—tanpa memerlukan refleksi.
Contoh Pustaka Standar
Fungsi pustaka standar yang menggunakan reified: filterIsInstance, emptyArray, arrayOf, typeOf. Fungsi-fungsi ini bekerja secara tepat karena merupakan fungsi inline + reified.
Pemeriksaan Singkat
Mengapa reified mengharuskan fungsi tersebut menjadi inline?
Rangkuman: Parameter Tipe reified
Hal-hal penting:
reifiedmembuat parameter tipe dapat diakses saat waktu berjalan, sehingga melewati penghapusan tipe- Mengharuskan fungsi menjadi
inline - Memungkinkan penggunaan
is T,T::class,T::class.javadi dalam fungsi - Mendukung penguraian JSON yang aman secara tipe, pembantu DI, dan API referensi kelas
Belajar Kotlin dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Parameter Tipe reified: Mengakses T saat Runtime” gratis?
Ya — teks lengkap “Parameter Tipe reified: Mengakses T saat Runtime” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Parameter Tipe reified: Mengakses T saat Runtime”?
Gunakan reified bersama fungsi inline untuk melakukan pemeriksaan dan cast tipe saat runtime. Kamu berlatih Kotlin Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Kotlin Academy?
Tidak diperlukan pengalaman sebelumnya. Kotlin Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Parameter Tipe reified: Mengakses T saat Runtime” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Academy ini?
Ya. Setiap pelajaran Kotlin Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Fungsi inline: Menghilangkan Overhead Lambda
- Modifier noinline dan crossinline
- Parameter Tipe reified: Mengakses T saat Runtime
- Pola Reified Praktis: Parsing, DI, dan Serialisasi