如何从注释处理器进程的构造函数Java元素对象中获取参数。使用Kotlin数据类

如何从注释处理器进程的构造函数Java元素对象中获取参数。使用Kotlin数据类,java,kotlin,annotation-processing,kapt,Java,Kotlin,Annotation Processing,Kapt,目前我正在尝试以下方法: element.encloseedelements.filter{it.kind==ElementKind.FIELD}.filter{ it.modifiers.contains(Modifier.FINAL)&& !it.modifiers.contains(Modifier.STATIC) } 但这种方法的问题是,它还返回构造函数中不存在的成员字段 数据类Post( val id:Int, val标题:字符串, val内容:字符串?, 瓦拉:查尔, val b:

目前我正在尝试以下方法:

element.encloseedelements.filter{it.kind==ElementKind.FIELD}.filter{
it.modifiers.contains(Modifier.FINAL)&&
!it.modifiers.contains(Modifier.STATIC)
}
但这种方法的问题是,它还返回构造函数中不存在的成员字段

数据类Post(
val id:Int,
val标题:字符串,
val内容:字符串?,
瓦拉:查尔,
val b:字符?,
val作者id:Int?,
val是公共的:布尔值,
val已更新:布尔值?,
) {
private val myCustomField=true//在注释处理器中处理此类时,我不需要此字段。
}
注意:我尝试了这个库:但是这个库不支持Kotlin的最新版本


谢谢。

假设只有一个公共构造函数(如果存在多个构造函数,将抛出异常
IllegalArgumentException
):

(element.encloseedelements.single{
it.kind==ElementKind.CONSTRUCTOR&&it.modifiers.contains(Modifier.PUBLIC)
}作为可执行元素)。参数
获取所有公共构造函数

val publicConstructors=element.encloseedelements.filter{
it.kind==ElementKind.CONSTRUCTOR&&it.modifiers.contains(Modifier.PUBLIC)
}.map{it as ExecutableElement}

假设只有一个公共构造函数,
(element.encloseedelements.single{it.kind==ElementKind.constructor&&it.modifiers.contains(Modifier.public)}作为可执行元素)。参数应起作用。如果您的建议正确,您可能希望将注释作为答案发布@МихаилНафталь