让我们考虑一下,我有一个如下文件:
@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教程/示例。
答案 0 :(得分:0)
要检查带注释的类,可以使用反射。请注意,任何使用泛型的字段都将由于擦除而丢失泛型参数类型(如果需要解决,则需要解析源代码并使用解析树)。要生成结果类,可以执行基本的String串联。如果您想要一种更结构化的代码生成方法,我喜欢codemodel库。