gpt4 book ai didi

java - 获取 AnnotationProcessor 中带注释类的包名称

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:22 27 4
gpt4 key购买 nike

我有一个使用 AnnotationProcessor 处理的类。在此过程中,我有一个 javax.lang.model.element.Element 实例,我可以在其中通过 .getSimpleName() 获取注释类的名称。我知道需要的是注释类的 packageName (com.software.cool)。

知道如何通过 API 接收它吗?

最佳答案

最好的方法是使用 ProcessingEnvironment.getElementUtils(),它有一个非常方便的方法,叫做 getPackageOf。为了获得 ProcessingEnviroment,您必须覆盖 AbstractProcessor 实现中的 init 方法。

public class DynamicServiceProcessor extends AbstractProcessor {

private ProcessingEnvironment processingEnvironment;
private Elements elementUtils;

@Override
public synchronized void init(ProcessingEnvironment processingEnvironment) {
super.init(processingEnvironment);
this.processingEnvironment = processingEnvironment;
this.elementUtils = processingEnvironment.getElementUtils();
}

@Override
public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) {
...
for (Element element : roundEnvironment.getElementsAnnotatedWith(DynamicService.class)) {
PackageElement packageElement = processingEnvironment.getElementUtils().getPackageOf(element);
}
...

关于java - 获取 AnnotationProcessor 中带注释类的包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46712609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com