Kotlin - как получить значение атрибута аннотации
скажем, у меня есть один класс Котлин с комментариями:
@Entity @Table(name="user") data class User (val id:Long, val name:String)
Как я могу получить значение атрибута name из аннотации @Table?
fun <T> tableName(c: KClass<T>):String {
// i can get the @Table annotation like this:
val t = c.annotations.find { it.annotationClass == Table::class }
// but how can i get the value of "name" attribute from t?
}
1 ответов
можно просто:
val table = c.annotations.find { it is Table } as? Table
println(table?.name)
Примечание, я использовал is
оператор с аннотации RUNTIME
сохранение и, следовательно, это фактический экземпляр Table
Аннотация В коллекции. Но для любой аннотации работает следующее:
val table = c.annotations.find { it.annotationClass == Table::class } as? Table