没有注释的lombok AST转换

时间:2014-12-09 09:47:50

标签: java abstract-syntax-tree lombok

是否可以使用没有注释的lombok将Integer类型声明切换为int或将final添加到局部变量?

2 个答案:

答案 0 :(得分:0)

我不明白你对int切换的整数是什么意思,但你可以使用:

声明一个最终的局部变量
val name = "My Name";

这将创建一个名为name的本地最终String变量。

披露:我是龙目岛项目的作者之一。

答案 1 :(得分:0)

解决方案是从JavacASTAdapter或EclipseASTAdapter扩展自定义处理程序。

来自标准lombok发行版的HandleVal可用作参考实现。

以下是上述示例转换的代码:

@ProviderFor(JavacASTVisitor.class)
public class SomeHandler extends JavacASTAdapter
{
  @Override
  public void visitLocal(JavacNode localNode, JCTree.JCVariableDecl local)
  {
    local.mods.flags |= Flags.FINAL;

    if (local.vartype.toString().equals("int"))
      local.vartype = localNode.getTreeMaker().Ident(localNode.toName("Integer"));

    ...
  }
}