Annotation menambah metadata ke kode, reflection membaca metadata itu saat runtime. Kotlin mempermudah kedua hal ini lewat kotlin.reflect.

# Built-in Annotations

Pelajari anotasi bawaan Kotlin: @Deprecated, @JvmStatic, @JvmField, @JvmOverloads, @Target, @Retention, dan kegunaannya.

Buka →
# Custom Annotations

Pelajari cara mendeklarasikan anotasi custom dengan annotation class, menerapkannya, dan membacanya via reflection.

Buka →
# Annotation Targets

Pelajari AnnotationTarget dan @Target untuk membatasi tempat anotasi boleh dipasang: class, function, property, getter, setter, parameter, file, dan type.

Buka →
# Annotation Retention

Pelajari AnnotationRetention SOURCE, BINARY, dan RUNTIME, serta dampaknya pada ketersediaan anotasi saat kompilasi dan runtime.

Buka →
# Annotation Parameters

Pelajari tipe parameter yang diperbolehkan pada anotasi Kotlin: primitif, String, enum, anotasi, KClass, dan array dari tipe tersebut, serta default value.

Buka →
# Annotation Processing

Pelajari tiga jalur pemrosesan anotasi di Kotlin: KSP saat kompilasi, KAPT sebagai jembatan Java, dan reflection saat runtime.

Buka →
# Kotlin Reflection

Pelajari dasar-dasar kotlin.reflect: KClass, KFunction, KProperty, cara mendapatkannya via ::class, dan interop dengan Java reflection.

Buka →
# Inspecting Classes

Pelajari cara menginspeksi class via KClass: simpleName, members, constructors, isData, isSealed, sealedSubclasses, dan membuat instance via primary constructor.

Buka →
# Property Reflection

Pelajari KProperty dan KMutableProperty, akses getter/setter via reflection, serta properti isLateinit dan isConst pada property Kotlin.

Buka →
# Callable References

Pelajari tiga bentuk callable reference: ::funcName top-level, Class::member unbound, dan instance::method bound — sebagai nilai function untuk higher-order.

Buka →
# Reflection Performance

Pelajari biaya performa reflection 10-100x lipat lebih lambat daripada pemanggilan langsung, cara caching KClass/KFunction, dan kapan memakai generated code.

Buka →