【发布时间】:2019-09-09 23:04:38
【问题描述】:
我有一个简单的annotation processor,应用如下:
@DiffElement(diffReceiver = Renderer.class)
class ViewState {
String getHello();
int getWorld();
}
class Renderer {
void renderHello(String hello);
void renderWorld(int world);
}
要使此处理器正常工作,get-functions 和 Renderer-interface 函数参数的名称必须匹配。它会检查这一点,并使用注解的参数来查看提供的类并在此基础上生成一些代码。
它生成一个文件。
我已阅读 Incremental annotation processing 上的文档,但我无法决定将哪个类别应用于此处理器。以下是我的考虑:
- 它不能是
isolating,因为它不会从带注释元素的 AST 派生所有内容,因为它还检查来自注释参数的类 - 不可能是
aggregating,因为它在Renderer类上没有任何注释,所以根据上面的文档,每当Renderer类发生变化时,处理器都不会被调用,因为处理器没有' t 注册来处理这个文件,所以这会导致生成的结果出错。
问题:
- 我是否正确理解文档?或者某些类别仍然可以应用于此处理器
- 如果它不属于任何一个类别,我怎么能告诉 Gradle 它不是增量的,所以像“kotlin kapt”这样的工具不会向用户抱怨我的处理器不是增量的
【问题讨论】:
标签: java gradle annotation-processing