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? } 

Solutions Collecting From Web of "Kotlin – как получить значение атрибута аннотации"

Вы можете просто:

 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