У меня есть аннотация 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
а когда мне использовать что?