我有以下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)