Альтернатива аннотациям? - PullRequest
3 голосов
/ 07 ноября 2011

У меня есть ситуация, когда я не могу добавить аннотации к классу, но есть ли способ добавить какие-либо метаданные в бин (код), которые вы не можете редактировать, но что бы пережить рефакторинг?Что, если я расширю бин, а затем добавлю аннотации к этому классу, возможно ли это?

Ответы [ 6 ]

2 голосов
/ 07 ноября 2011

По старинке, используйте маркерные интерфейсы, то есть интерфейсы без таких методов, как Serializable или Cloneable.

1 голос
/ 07 ноября 2011

Вы можете рассмотреть AOP http://static.springsource.org/spring/docs/2.5.x/reference/aop.html

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

Не сообщая нам точно, чего вы хотите достичь, трудно угадать, что вам нужно.

1 голос
/ 07 ноября 2011

В зависимости от вашей среды IDE все, что вам нужно сделать, это сослаться на ваш класс, методы или поля в текстовых файлах, таких как свойства или XML.Ваша IDE найдет их и предложит выполнить поиск / замену текста при переименовании классов / методов / полей.(Хотя некоторые рефакторинги, такие как перенос метода в другой класс, не будут работать так хорошо)

0 голосов
/ 07 ноября 2011

Если вы не можете изменить код, вы можете поместить метаданные в глобальную карту с ключом Class.

0 голосов
/ 07 ноября 2011

Вы можете добавить параллельную иерархию классов с метаданными. Вроде как классы BeanInfo предоставляют метаданные для Java-бинов.

0 голосов
/ 07 ноября 2011

Вам нужны метаданные для использования из какого-то другого кода или они должны быть удобочитаемыми для человека?

Вы можете использовать инструментарий кода для добавления любых данных в ваши классы (javassist, некоторые aop и т. Д.)

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