我有一个包名和一个类名作为Strings,但是我的批注处理器中没有专门的类。我需要使用:
FunSpec.overriding(getOnlyElement(methodsIn(//stuck here)))stuck here应为setOf ExecutableElement%s?我该怎么做呢?
我也查过here,但没那么走运。
发布于 2019-11-22 22:51:02
首先,您需要使用package和class名称获取一个TypeElement (为此您需要一个ProcessingEnvironment实例)。
fun getTypeElement(
processingEnvironment: ProcessingEnvironment,
packageName: String,
className: String
): TypeElement {
return processingEnvironment.elementUtils.getTypeElement("$packageName.$className")
}然后,您就可以简单地在TypeElement中访问enclosedElements
val typeElement = getTypeElement(processingEnv, packageName, className)
FunSpec.overriding(getOnlyElement(methodsIn(typeElement.enclosedElements)))https://stackoverflow.com/questions/58963911
复制相似问题