Kotlin – 如何获得注释属性值

说,我有一个Kotlin类与注释

@Entity @Table(name="user") data class User (val id:Long, val name:String) 

我怎样才能从@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? } 

One Solution collect form web for “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 
  • 使用AnkoLogger级别以外的“信息”
  • 将路线分割成多个文件
  • 在kotlin中,如何返回由泛型类参数定义的实例
  • 我无法从Kotlin的嵌套班上找到任何班级成员
  • Kotlin:为什么我不能使用我的一个功能?
  • 使用NewApi属性仍然会导致lint警告
  • 当返回1xx状态码时,Spring引导请求挂起
  • Kotlin:解决genericsinheritance
  • 在Kotlin中不能返回tailrec函数的阶乘结果
  • Kotlin数据库错误CursorIndexOutOfBoundsException
  • 未解决的参考:KOTLIN需要2个版本清理后,拿起代码时使用kapt
  • Kotlin language will be the best programming language for Android.