В моем проекте я должен реализовать некоторые аннотации, определяющие набор типов данных и операцию, которую я могу сделать на них.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, например, тот, который я написал, возможно, используя весну? Можете ли вы привести мне пример?
Я мастерил хорошее использование этого учебника http://tutorials.jenkov.com/java-reflection/annotations.html. Извините, у меня нет ответа для вас – Kennet
«во время компиляции и с помощью java reflection» - это противоречие. Отражение работает * во время выполнения *. – Holger
Хорошо, я изменил название ... так что у вас более конструктивный ответ? Есть ли возможность создать свой собственный .class, начиная с анализа аннотаций? – Alex