这类型跟想象中不太一样。
来源:10-1 注解的基本概念

压缩疯雷
2020-12-29
为什么拿到的是个代理的类型?
package annotations
annotation class Tag(val name: String)
@Tag("abook")
class Book(var name: String)
fun main() {
val book = Book("hello Kotlin")
book::class.annotations.forEach { it: Annotation ->
println(it::class) //class com.sun.proxy.$Proxy1 ??
}
println(Tag::class)
}
运行结果
class com.sun.proxy.$Proxy1
class annotations.Tag
写回答
1回答
-
这个是动态代理的结果,只要是对应的接口的子类就行了,具体实现跟编译器和运行时有关系
022020-12-29