IntelliJ / Kotlin PSI 中的注释与注释条目
annotations vs annotationEntries in IntelliJ / Kotlin PSI
我有一个 Kotlin 注释:
@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.CLASS)
annotation class Type(
val type: String
)
它可以在 Kotlin 上使用 classes:
@Type(type = "type")
data class Annotated(
…
)
我正在用 detekt which provides access to the Kotlin PSI 分析这个源代码。要获得注释,我使用如下代码:
val annotation = klass
.annotationEntries
.find {
"Type" == it?.shortName?.asString()
}
其中,klass
具有来自 Kotlin PSI 的 KtClass
类型。我注意到,KtClass
有两个属性:annotations
和 annotationEntries
并且 annotations
对于上面带注释的 class 是空的。
annotations
和 annotationEntries
有什么区别,什么时候应该使用什么?
Annotation 是声明 (annotation class
).
Annotation Entry是注解的应用(@
).
我有一个 Kotlin 注释:
@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.CLASS)
annotation class Type(
val type: String
)
它可以在 Kotlin 上使用 classes:
@Type(type = "type")
data class Annotated(
…
)
我正在用 detekt which provides access to the Kotlin PSI 分析这个源代码。要获得注释,我使用如下代码:
val annotation = klass
.annotationEntries
.find {
"Type" == it?.shortName?.asString()
}
其中,klass
具有来自 Kotlin PSI 的 KtClass
类型。我注意到,KtClass
有两个属性:annotations
和 annotationEntries
并且 annotations
对于上面带注释的 class 是空的。
annotations
和 annotationEntries
有什么区别,什么时候应该使用什么?
Annotation 是声明 (annotation class
).
Annotation Entry是注解的应用(@
).