我有一个包名和一个类名,如String
,但是我的注释处理器中没有专门的类。我需要使用:
FunSpec.overriding(getOnlyElement(methodsIn(//stuck here)))
stuck here
应该是setOf
ExecutableElement
s吗?我怎样才能做到这一点?
我也检查了here,但没有那么多运气。
首先,您需要从TypeElement
和package
名称中获得一个class
(您将需要一个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)))