Java Kotlin编译器插件:如何检查属性是否有注释?

Java Kotlin编译器插件:如何检查属性是否有注释?,java,kotlin,annotations,kotlinc,Java,Kotlin,Annotations,Kotlinc,我正在创建一个Kotlin编译器插件,其中我需要检查数据类的属性是否有注释: data class User( @MyAnnotation val name: String ) 我用以下方式重写DelegatingClassBuilder.newField: internal class MyClassBuilder( delegateBuilder: ClassBuilder ) : DelegatingClassBuilder(delegateBuilder)

我正在创建一个Kotlin编译器插件,其中我需要检查数据类的属性是否有注释:

data class User(
     @MyAnnotation
     val name: String
)
我用以下方式重写
DelegatingClassBuilder.newField

internal class MyClassBuilder(
    delegateBuilder: ClassBuilder
) : DelegatingClassBuilder(delegateBuilder) {
    override fun newField(
        origin: JvmDeclarationOrigin,
        access: Int,
        name: String,
        desc: String,
        signature: String?,
        value: Any?
    ): FieldVisitor {
        val visitor = super.newField(origin, access, name, desc, signature, value)
        val descriptor = origin.descriptor as? PropertyDescriptor ?: return visitor
        if (descriptor.annotations.hasAnnotation(FqName("com.example.MyAnnotation"))) {
            // I never get here
        }
        return visitor
    }
}
问题:无论我的属性是否带有注释
描述符。注释将不包含我的注释。如果我将注释use target更改为其他任何内容,我仍然无法获得注释

同时,如果我注释一个函数并覆盖
newMethod
,我可以用非常相似的代码得到这个函数的注释


问题:如何获取数据类中属性的注释?

尝试使用
PropertyDescriptor
@MadhuBhat以外的描述符,您会建议哪一个?尝试使用
PropertyDescriptor
@MadhuBhat以外的描述符,您会建议哪一个?