如何使用JavacNode

时间:2016-12-03 06:24:00

标签: java abstract-syntax-tree lombok

我是lombok和AST的新手。这是我困住了几天的问题。如果不清楚,请帮我澄清一下,谢谢。

我的班级看起来像这样

class OrderFixture {
   @MyLombokAnnotation 
   private Order order = new Order(); 

}

我的计划是为字段顺序生成setter方法,如下所示:

class OrderFixture {
   private Order order = new Order(); 

   public void setStatus(String status) {
        this.order.setStatus(status);
   }
}

但是我找不到用lombok API获取order字段的字段的方法,这是我的尖峰代码:

private JCTree.JCMethodDecl withStatusMethod(JavacNode fixtureClass, JavacNode targetField) {
    JavacTreeMaker treeMaker = fixtureClass.getTreeMaker();
    JCVariableDecl targetFieldDeclare = (JCVariableDecl) targetField.get();

    //get fields of target field
    // I can get targetField Type (Order in this case), But I don't know how to use it
}

我在控制台中使用@PrintAST看起来像订单字段,其字段不在树中。

那么有可能实现我的目标吗?

0 个答案:

没有答案