1

我有一个包名和一个类名作为Strings 但我的注释处理器中没有专门的类。我需要使用:

FunSpec.overriding(getOnlyElement(methodsIn(//stuck here)))

stuck here应该是s setOf ExecutableElement?我怎样才能做到这一点?

我也在这里检查过,但没有那么多运气。

4

1 回答 1

1

首先,您需要TypeElement使用packageandclass名称获取一个(您需要一个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)))
于 2019-11-22T14:51:01.970 回答