Страницы

Поиск по вопросам

четверг, 15 ноября 2018 г.

Зачем создавать собственные аннотации?

Для чего в java возможно использовать собственную аннотацию? Какое практическое применение возможно для класса, который зааннотирован созданной аннотацией?
@Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Question { String data(); int data2(); }
@Question(data = "What Next?", data2 = 1) public class MyObj {
private String name; private Integer id;
public MyObj(String name, Integer id) { this.name = name; this.id = id; }
public String getName() { return name; }
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof MyObj)) return false;
MyObj myObj = (MyObj) o;
return id.equals(myObj.id);
}
@Override public int hashCode() { return id.hashCode(); } }
Получается, что через рефлексию возможно получение значений, занесенных в аннотацию для конкретного класса.
И какое практическое применение этой информации возможно?


Ответ

На самом деле, применение ограничено только вашей фантазией: в аннотациях можно писать тесты, описывать правила кеширования, валидации или другие параметры объектов, управлять их поведением...
Только нужно понимать, что поскольку вы сами придумываете эти аннотации, инструменты для их обработки тоже нужно будет писать вам.

Комментариев нет:

Отправить комментарий