Могу ли я сделать конструктор для пользовательской аннотации?
Я пытаюсь сделать аннотацию для различных методов и классов, чтобы программным образом отслеживать все правила, чтобы я мог отобразить их пользователю.
Я хотел бы класс аннотации Rule
записать все места, где используется аннотация. В качестве первого шага я попытался добавить в класс один статический счетчик, вот что Rule
аннотация выглядит так:
public @interface Rule {
static int count = 0;
String name();
String description(); //Note the parentheses
public Rule(String name, String description) {
count++;
this.name = name;
this.description = description;
}
}
То, как я бы использовал это, выглядит так:
public class Airline {
private String code;
@Rule(name = "Formatted Code", description = "e.g. Format 'la' as 'LA'")
public String codeFormatted() {
return code.toUpperCase();
}
public static void main(String args[]) {
System.out.println(Rule.count);
}
}
Без Rule
открытый конструктор, компилируется с использованием javac
версия 1.8.0_162.
Когда я добавляю открытый конструктор (для увеличения Rule.count), я получаю ошибки компилятора:
javac Rule.java
Rule.java:6: error: <identifier> expected
public Rule(String name, String description) {
^
1 error
Compilation exited abnormally with code 1 at Thu Mar 22 19:58:39
Чего мне не хватает в моем Rule
конструктор?
Или это совершенно нелепая идея, и мне должно быть плохо? Не могу сказать, все еще привыкаю к аннотациям.