我有一个包名和一个类名作为String
s 但我的注释处理器中没有专门的类。我需要使用:
FunSpec.overriding(getOnlyElement(methodsIn(//stuck here)))
stuck here
应该是s setOf
ExecutableElement
?我怎样才能做到这一点?
我也在这里检查过,但没有那么多运气。
我有一个包名和一个类名作为String
s 但我的注释处理器中没有专门的类。我需要使用:
FunSpec.overriding(getOnlyElement(methodsIn(//stuck here)))
stuck here
应该是s setOf
ExecutableElement
?我怎样才能做到这一点?
我也在这里检查过,但没有那么多运气。
首先,您需要TypeElement
使用package
andclass
名称获取一个(您需要一个ProcessingEnvironment
实例)。
fun getTypeElement(
processingEnvironment: ProcessingEnvironment,
packageName: String,
className: String
): TypeElement {
return processingEnvironment.elementUtils.getTypeElement("$packageName.$className")
}
然后你可以简单地enclosedElements
访问TypeElement
:
val typeElement = getTypeElement(processingEnv, packageName, className)
FunSpec.overriding(getOnlyElement(methodsIn(typeElement.enclosedElements)))