2015-06-16 2 views
1

В моем проекте я должен реализовать некоторые аннотации, определяющие набор типов данных и операцию, которую я могу сделать на них.Java Annotation building .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"]); 
} 

Что я могу использовать для достижения своей цели? Можно ли получить инстантивный файл .class, например, тот, который я написал, возможно, используя весну? Можете ли вы привести мне пример?

+0

Я мастерил хорошее использование этого учебника http://tutorials.jenkov.com/java-reflection/annotations.html. Извините, у меня нет ответа для вас – Kennet

+0

«во время компиляции и с помощью java reflection» - это противоречие. Отражение работает * во время выполнения *. – Holger

+0

Хорошо, я изменил название ... так что у вас более конструктивный ответ? Есть ли возможность создать свой собственный .class, начиная с анализа аннотаций? – Alex

ответ

Смежные вопросы