我正在为java 7源代码编写一个java注释处理器。 当然,我可以使用javax.annotation.processing.filer来帮助我自动生成项目目录下的文件。
例如:注释是@becare
public interface test {
@becare
int compare(int a, int b);
}
我的注释处理器的工作是当它检测到给定的注释@becare时,它会为我生成文件。
我的问题是,如果我从前面的代码段中删除注释,我是否可以让注释处理器知道并删除它刚刚创建的文件?
或者是否有任何解决方法可以帮助我实现这一目标?
提前致谢。
答案 0 :(得分:5)
当您创建生成的文件时,您声明它已链接到您的“测试”界面,如下所示:
Elements eltUtils = processingEnv.getElementUtils();
filer.createSourceFile("testGenerated", eltUtils.getTypeElement("test"));
当删除源时,处理器将删除生成的文件,如javadoc所说:
如果没有原始元素,则不需要传递任何元素。此信息可用于增量环境,以确定是否需要重新运行处理器或删除生成的文件。非增量环境可能会忽略原始元素信息。