РЕГИСТРАЦИЯ |
EMAIL
ПАРОЛЬ

15 мая 2007. Компания Fusionsoft представляет новый продукт, предназначенный для Java разработчиков - библиотеку наследуемых Java аннотаций.

Полноценные аннотации доступны в языке Java начиная с версии 1.5, где появилась возможность создавать свою собственную метаинформацию и использовать ее при написании кода. Аннотации применяются при различных аспектах создания программ и ценны, прежде всего, как средство декларативного описания поведения Java кода. Java API позволяет получать доступ к аннотациям при выполнении программы и соответствующим образом на них реагировать. При правильном применении метаинформация улучшает читабельность и стабильность кода.

К сожалению, существуют ситуации, когда применение аннотаций затруднено или невозможно. Механизм аннотаций построен таким образом, что наследование аннотаций не происходит. Если Вы применили аннотации при описании базового класса или интерфейса, а затем создали наследника, то такой наследник окажется без аннотаций. Та же проблема справедлива для аннотаций методов класса или интерфейса.

Как вариант решения проблемы - использование аннотации @Inherited, которая означает, что аннотация должна наследоваться в производных классах, но данная аннотация применима только к классам и интерфейсам и ее использование не всегда возможно.

Такое ограничение особенно критично, если используются какие-либо обертки над пользовательскими классами, и ручное добавление метаинформации не представляется возможным или отсутствует аннотация @Inherited в коде базовых классов.

Если перед Вами стоит задача наследования аннотаций, объявленных для классов и интерфейсов, а также для их методов, то библиотека наследуемых аннотаций - ваш вариант.

Библиотека наследуемых аннотаций устраняет недостаток, присущий Java аннотациям и позволяет:

  • наследовать аннотации, объявленные для классов и интерфейсов;

  • наследовать аннотации, объявленные для методов;

  • перегружать аннотации в потомках.

Доступ к наследуемым аннотациям аналогичен стандартным аннотациям с тем отличием, что обращение производится через отдельные классы библиотеки. Используется модель непротиворечивого наследования: наследование осуществляется только в том случае, если базовые классы и интерфейсы не содержат одной и той же аннотации для одного и того же элемента (класса, интерфейса или метода). В библиотеке применен lazy-initialization pattern: аннотации кэшируются только во время первого обращения к ним.

Данная библиотека распространяется с открытым исходным кодом, бесплатно и без ограничений на коммерческое использование.

Детальная информация о продукте и сам продукт доступны на странице официального сайта Fusionsoft: http://www.fusionsoft-online.com/annotation.php. Так же Вы можете задавать интересующие Вас вопросы по адресу info@fusionsoft-online.com.

Контакты:

Милонов Михаил (заместитель генерального директора): info@fusionsoft-online.com

Fusionsoft

http://www.fusionsoft-online.com