小编Gri*_*118的帖子

Kotlin得到Field Annotation总是空的

我有以下Kotlin注释

@Target(AnnotationTarget.FIELD, AnnotationTarget.PROPERTY_GETTER)
@Retention(AnnotationRetention.RUNTIME)
annotation class Field(val value: String)
Run Code Online (Sandbox Code Playgroud)

以及以下测试代码

class TestObject(@field:Field("id") val id: Long) {

  @field:Field("string")
  val string = "Hello world"

  @get:Field("prop")
  val prop get() = string
}

class AnnotationTest {

  @Test
  fun test() {
    val obj = TestObject(200L)
    for (member in obj::class.declaredMemberProperties) {
      if (member.findAnnotation<Field>() != null) {
        println(member)
      }
      println(member)
      println(member.annotations)
    }
    println("#########")
    for(member in obj.javaClass.declaredFields) {
      println(member)
      println(member.annotations)
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

它将打印以下输出:

val TestObject.id: kotlin.Long
[]
val TestObject.prop: kotlin.String
[]
val TestObject.string: kotlin.String
[]
#########
private …
Run Code Online (Sandbox Code Playgroud)

reflection annotations kotlin

6
推荐指数
1
解决办法
3153
查看次数

标签 统计

annotations ×1

kotlin ×1

reflection ×1