3

我有一个 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何时应该使用什么之间有什么区别?

4

1 回答 1

1

注释是一个声明 ( annotation class)。

Annotation Entry是annotation ( @) 的一个应用。

于 2020-06-01T13:05:04.057 回答