从另一个Java文件生成Java文件的推荐方法

时间:2018-12-08 22:18:52

标签: java code-generation

让我们考虑一下,我有一个如下文件:

    @CreateFieldClass
    public class Queue {
      private String queueId;
      private int order;
      private boolean isActive;

      /* Getters and Setters */

    }

我想要的是,如果有@CreateFieldClass批注,我想在一个看起来像这样的包中生成一个新的Java文件

    public class QueueFields {
        public static final Field<Queue, String> QUEUE_ID = new Field<>(Queue.class, "queueId", DataType.STRING);
        public static final Field<Queue, Integer> ORDER = new Field<>(Queue.class,"order", DataType.NUMBER);
        public static final Field<Queue, Boolean> IS_ACTIVE = new Field<>(Queue.class,"isActive", DataType.Boolean);
    }

我有一个Java类型到上面提到的“ DataType”的映射。 我知道ASM是可以考虑的一种选择,但是有没有更好的建议,甚至有人可以帮助我的一些ASM教程/示例。

1 个答案:

答案 0 :(得分:0)

要检查带注释的类,可以使用反射。请注意,任何使用泛型的字段都将由于擦除而丢失泛型参数类型(如果需要解决,则需要解析源代码并使用解析树)。要生成结果类,可以执行基本的String串联。如果您想要一种更结构化的代码生成方法,我喜欢codemodel库。