Java Annotation在编译时构建.class

时间:2015-06-16 17:16:24

标签: java spring annotations compile-time

在我的项目中,我必须实现一些注释,指定一组数据类型以及我可以对它们进行的操作。

在此之后我必须注释我的模型包的某些类,以这种方式指定我可以在这个类上进行什么类型的操作。

最后,在编译时,我必须使用带注释的字段解析类,并构建一个表示类的新模型以及我可以对其属性执行的每个操作。

我想知道如果下面列出的方式可能是一种正确的方法:

例如:

public @interface MySearchableType1 {         

    enum operations{
         EQUAL,
         NOT_EQUAL,
         LIKE,
         NOT_LIKE,
         IN,
         NOT_IN     
    }        
 }

public @interface MySearchableType2 {

    enum operations{
        EQUAL,
        NOT_EQUAL               
    }        
}

public class MyClass {

    public String name;

    @MySearchableType1
    public String property1;

    @MySearchableType2
    public String property2;
}

最终产品应该是这样的:

public class MyModelClass{
     public Map<String, String[]> property1 = new HasMap<String,String[]>();
    property1.put("property1", ["EQUAL", "NOT_EQUAL", "LIKE", "NOT_LIKE", "IN", "NOT_IN"]); 

    public Map<String, String[]> property2 = new HasMap<String,String[]>();
    property2.put("property21", ["EQUAL", "NOT_EQUAL"]);
}

我可以用什么来达到我的目标?是否有可能获得像我使用spring编写的实例.class文件?你能举个例子吗?