Java 无注释的lombok AST转换

Java 无注释的lombok AST转换,java,abstract-syntax-tree,lombok,Java,Abstract Syntax Tree,Lombok,是否可以将Integer类型声明切换到int或使用无注释的lombok将final添加到局部变量?我不理解整数切换到int的意思,但您可以使用以下方法声明最终局部变量: val name = "My Name"; 这将创建一个名为name的本地最终字符串变量 披露:我是Lombok项目的作者之一。解决方案是从JavacASTAdapter或EclipseASTAdapter扩展自定义处理程序 标准lombok分布的HandleVal可用作参考实现 下面是上面转换示例的代码: @Provider

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

我不理解整数切换到int的意思,但您可以使用以下方法声明最终局部变量:

val name = "My Name";
这将创建一个名为
name
的本地最终字符串变量


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

解决方案是从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"));

    ...
  }
}

int开关只是一个例子。需要搜索和重写与某些签名相对应的代码,并且这些代码没有标注。