Membuat dan Menargetkan Anotasi Kustom
Definisikan anotasi dengan kebijakan retensi dan terapkan pada class, fungsi, serta properti.
Membuat dan Menargetkan Anotasi Kustom adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Mengapa Anotasi Kustom?
Anotasi adalah metadata yang dilampirkan pada deklarasi (kelas, fungsi, properti, parameter). Anotasi kustom memungkinkan Anda menandai kode untuk diproses oleh kerangka kerja, alat pembangunan (KSP/KAPT), atau logika Anda sendiri saat dijalankan.
Mendeklarasikan Anotasi
Gunakan kata kunci annotation class. Kelas anotasi dapat memiliki parameter konstruktor (hanya tipe primitif, String, KClass, enumerasi, anotasi lain, atau larik dari tipe-tipe tersebut):
annotation class Validate(val minLength: Int = 1, val maxLength: Int = 255)Anotasi Meta: @Target
@Target membatasi tempat anotasi dapat digunakan. Sasaran umum: CLASS, FUNCTION, PROPERTY, FIELD, VALUE_PARAMETER, CONSTRUCTOR.
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER)
annotation class Validate(val minLength: Int = 1, val maxLength: Int = 255)@Retention: Kapan Anotasi Tersedia?
@Retention mengatur masa berlaku anotasi:
SOURCE— dibuang setelah kompilasiBINARY— disimpan dalam berkas .class tetapi tidak terlihat melalui refleksiRUNTIME— disimpan dan terlihat saat dijalankan (bawaan untuk sebagian besar penggunaan)
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.PROPERTY)
annotation class Validate(val minLength: Int = 1)@Repeatable: Menerapkan Anotasi yang Sama Beberapa Kali
Secara bawaan, anotasi hanya dapat diterapkan sekali pada setiap deklarasi. Tandai dengan @Repeatable agar dapat diterapkan beberapa kali:
@Repeatable
@Target(AnnotationTarget.FUNCTION)
annotation class Role(val name: String)Menganotasi Konstruktor dan Parameter
Anda dapat menganotasi parameter konstruktor dan properti konstruktor utama. Gunakan sasaran lokasi penggunaan @field:, @get:, atau @param: untuk mengatur elemen mana yang menerima anotasi:
data class User(
@field:Validate(minLength = 2) val name: String,
@field:Validate(minLength = 0, maxLength = 120) val email: String
)Sasaran Lokasi Penggunaan
Kotlin menghasilkan beberapa elemen kode bita dari satu properti (bidang, pengambil, penyetel, parameter). Sasaran lokasi penggunaan menentukan elemen mana yang menerima anotasi:
@field:bidang pendukung@get:pengambil@set:penyetel@param:parameter konstruktor
Menganotasi Kelas
Anotasi pada kelas berguna untuk menandainya agar diproses oleh kerangka kerja (misalnya, menandai kelas sebagai dapat diserialisasi, dapat diinjeksi, atau bagian dari modul tertentu):
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class Repository
@Repository
class UserRepository@MustBeDocumented
Menambahkan @MustBeDocumented memastikan anotasi muncul dalam dokumentasi API yang dihasilkan. Gunakan ini untuk anotasi yang menjadi bagian dari kontrak API publik Anda.
@MustBeDocumented
@Target(AnnotationTarget.CLASS)
annotation class PublicApi(val since: String)Parameter Anotasi: Nilai Bawaan dan Larik
Parameter dapat memiliki nilai bawaan dan dapat menerima larik menggunakan kata kunci vararg atau tipe larik eksplisit:
annotation class Roles(vararg val value: String)
@Roles("ADMIN", "EDITOR")
class AdminPanelParameter KClass dalam Anotasi
Anotasi dapat mereferensikan tipe kelas melalui KClass:
annotation class Serializer(val using: KClass<out Any>)
@Serializer(using = GsonAdapter::class)
class EventPemeriksaan Singkat
Nilai @Retention mana yang membuat anotasi kustom dapat diakses melalui refleksi Kotlin saat dijalankan?
Ringkasan: Anotasi Kustom
Hal-hal utama:
- Deklarasikan dengan
annotation class; parameter terbatas pada tipe primitif, String, KClass, enumerasi, dan larik @Target— tempat anotasi dapat diterapkan@Retention— kapan anotasi tersedia (gunakan RUNTIME untuk refleksi)@Repeatable— izinkan beberapa penerapan pada satu deklarasi- Sasaran lokasi penggunaan (
@field:,@get:, dan sebagainya) mengontrol elemen kode bita mana yang menerima anotasi
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membuat dan Menargetkan Anotasi Kustom” gratis?
Ya — teks lengkap “Membuat dan Menargetkan Anotasi Kustom” 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 “Membuat dan Menargetkan Anotasi Kustom”?
Definisikan anotasi dengan kebijakan retensi dan terapkan pada class, fungsi, serta properti. 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 2 dari 4.
Berapa lama pelajaran “Membuat dan Menargetkan Anotasi Kustom” 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
- Refleksi Kotlin: KClass, KFunction, KProperty
- Membuat dan Menargetkan Anotasi Kustom
- Membaca Anotasi saat Runtime
- Validasi dan Pemetaan Berbasis Refleksi