我有一个 Kotlin 注释:
@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.CLASS)
annotation class Type(
val type: String
)
它可以用于 Kotlin 类:
@Type(type = "type")
data class Annotated(
…
)
我正在使用detekt分析此源代码,它提供对Kotlin PSI的访问。要获得注释,我使用如下代码:
val annotation = klass
.annotationEntries
.find {
"Type" == it?.shortName?.asString()
}
其中,klass
有一种KtClass
来自 Kotlin PSI 的类型。我注意到,它KtClass
有两个属性:annotations
并且annotationEntries
对于annotations
上面的带注释的类是空的。
annotations
我应该使用什么以及annotationEntries
何时应该使用什么之间有什么区别?