gpt4 book ai didi

java - 在保存文件之前,不会删除自定义编译器错误(修复后)

转载 作者:行者123 更新时间:2023-12-01 22:21:43 26 4
gpt4 key购买 nike

我制作的每个注释处理器似乎都有这个问题。例如,@Constant 注释:

package annotations;

@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.FIELD)
public @interface Constant {

}

处理器:

package processor;

@SupportedAnnotationTypes("annotations.Constant")
@SupportedSourceVersion(SourceVersion.RELEASE_8)
public final class ConstantProcessor extends AbstractProcessor {

public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
for(Element element : roundEnv.getElementsAnnotatedWith(Constant.class)) {
Set<Modifier> modifiers = element.getModifiers();

if(!modifiers.contains(Modifier.PUBLIC) || !modifiers.contains(Modifier.STATIC) || !modifiers.contains(Modifier.FINAL)) {
processingEnv.getMessager().printMessage(Kind.ERROR, "A constant must be public, static and final", element);
}
}

return false;
}
}

如果用 @Constant 注释的字段不是 public static final,这将引发编译器错误。

问题是,直到我保存文件后才会出现错误。与错误消失相同。如果我解决了问题,错误将一直存在,直到我保存文件。

我正在使用 Eclipse Luna 和 Java 8u31。有什么办法可以防止这种情况发生吗?

最佳答案

在保存文件之前编译器不会运行。这就是为什么编译器错误无法确定已修复(直到保存文件)。不,没有什么需要修复的(这就是它设计的工作方式)。

关于java - 在保存文件之前,不会删除自定义编译器错误(修复后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29597503/

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