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

时间:2014-06-26 00:30:52

标签: java annotations

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

例如:注释是@becare

public interface test {
   @becare
   int compare(int a, int b);
}

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:5)

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

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

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

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