аннотации против аннотаций Entries в IntelliJ / Kotlin PSI - PullRequest
2 голосов
/ 16 октября 2019

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

...