2015-06-16 36 views
1

我必須實現一些註釋,指定一組數據類型和我可以對它們執行的操作。Java註釋在編譯時創建.class在我的項目中

在此之後,我必須註釋我的模型包的一些類,以這種方式指定我可以在此類上進行什麼類型的操作。

最後,在編譯時,我必須解析帶註釋字段的類,並構建一個新模型來表示該類以及我可以對其屬性執行的每個操作。

我想知道如果我下面列出的方法可能是一個正確的方式做到這一點:

例如:

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文件?你可以給我一個例子嗎?

+0

我哈得好好利用這個教程http://tutorials.jenkov.com/java-reflection/annotations.html的。對不起,我沒有你的答案 – Kennet

+0

「在編譯時和通過java反射」是一個矛盾。反射工作*在運行時*。 – Holger

+0

好吧,我改變了標題......所以你有一個更具建設性的答案?是否有可能從註釋分析開始構建我自定義的.class類? – Alex

回答