删除源文件中的注释时,自动删除Java 7 Annotation Processor生成的文件

Cyr*_*Lee 1 java annotations

我正在为java 7源代码编写java注释处理器.当然,我可以使用javax.annotation.processing.filer来帮助我自动生成项目目录下的文件.

例如:注释是@becare

public interface test {
   @becare
   int compare(int a, int b);
}
Run Code Online (Sandbox Code Playgroud)

我的注释处理器的工作是当它检测到给定的注释@becare时,它会为我生成文件.

我的问题是,如果我从前面的代码片段中删除注释,我可以让注释处理器知道并删除它刚刚创建的文件吗?

或者有任何解决方法可以帮助我实现这一目标吗?

提前致谢.

Séb*_* B. 5

当您创建生成的文件时,您声明它已链接到您的"测试"界面,如下所示:

Elements eltUtils = processingEnv.getElementUtils(); filer.createSourceFile("testGenerated", eltUtils.getTypeElement("test"));

当删除源时,处理器将删除生成的文件,如javadoc所说:

如果没有原始元素,则不需要传递任何元素.此信息可用于增量环境,以确定是否需要重新运行处理器或删除生成的文件.非增量环境可能会忽略原始元素信息.