164 Words
⚠️

ある列挙型の値に設定されたアノテーションを取得する方法。
個人的には滅多に使わないけど、必要な時に忘れるのでメモ。

val anno =
    HogeEnum.VALUE
    .declaringClass
    .getField(HogeEnum.VALUE.name)
    .getAnnotation(TestAnno::class.java)
annotation class TestAnno
enum class HogeEnum {
    @TestAnno
    VALUE
}

補足

実行時に型情報が必要になるので、Androidアプリ開発時に用いる場合はリリースビルド前にproguard-rules.proの確認が必要。
HogeEnumを維持するようにする。

See Also