我们可以使用mvnDebug命令对注解器进行bug,debug具体使用方式这里不展开了。 接下来说说注解器的一些api,抄自 Java-JSR-269-插入式注解处理器: 3 编译相关的数据结构与API 3.1 JCTree JCTree是语法树元素的基类,包含一个重要的字段pos,该字段用于指明当前语法树节点(JCTree)在语法树中的位置,因此我们不能直接用new...
1.打断点,设置错误信息过滤条件 2. debug maven编译 3.分析异常链路,发现是在使用treeMark生成method的param有问题。导致问题的核心值是 JCVariableDecl的pos字段,此字段用于指明当前语法节点在语法树中的位置。分析字段生成,发现使用treeMark生成的POS都为固定值,实际此字段应与解析的element保持一致。 treeMaker.pos ...
maven编译不成功。 笔者日常***:兄弟姐妹们,还是尽量少熬夜啊。我感觉我记性有所下降,难受。 需求说明(本文以实现此需求为例进行说明): 现在有一个需求,就是要给枚举类生成一个内部类,这个内部类中以静态常量的形式记录外部枚举类所有枚举项的值,即: 编译前java文件是这样的: (编译时操作AST,)编译后的class文...
maven编译不成功。 笔者日常***:兄弟姐妹们,还是尽量少熬夜啊。我感觉我记性有所下降,难受。 需求说明(本文以实现此需求为例进行说明): 现在有一个需求,就是要给枚举类生成一个内部类,这个内部类中以静态常量的形式记录外部枚举类所有枚举项的值,即: 编译前java文件是这样的: (编译时操作AST,)...
A tiny code generation library (< 8 KB) written in Java, useful for any purpose, but ideal for JSR-269 - ainslec/picocog