KotlinPoet当类不存在时如何使用FunSpec.overriding?

问题描述 投票:0回答:1

我有一个包名和一个类名,如String,但是我的注释处理器中没有专门的类。我需要使用:

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

stuck here应该是setOfExecutableElements吗?我怎样才能做到这一点?

我也检查了here,但没有那么多运气。

kotlin annotation-processing kotlinpoet
1个回答
0
投票

首先,您需要从TypeElementpackage名称中获得一个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)))
© www.soinside.com 2019 - 2024. All rights reserved.