ある列挙型の値に設定されたアノテーションを取得する方法。
個人的には滅多に使わないけど、必要な時に忘れるのでメモ。
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
を維持するようにする。