Предпочитаемый способ пометить конструктор / метод Java как не для использования клиентом? - PullRequest
1 голос
/ 09 января 2012

Я хочу пометить некоторые конструкторы и сеттеры по умолчанию как недоступные / рекомендуемые для использования. Мне нужно, чтобы оно было несколько похоже на аннотацию @Deprecated, но оно не должно иметь того же значения. Я только добавляю эти конструкторы и сеттеры, потому что некоторые фреймворки заставляют меня это делать (Hibernate, Spring, Jackson). Вы знаете, существует ли такая конструкция?

Ответы [ 3 ]

3 голосов
/ 09 января 2012

Реальный ответ здесь - выставлять интерфейсы и фабрики только за пределами вашего API. Это позволяет скрыть методы, которые могут потребоваться, чтобы быть не приватными из-за инфраструктуры.

Если вы не можете сделать это, попробуйте установить область действия методов по умолчанию (вместо protected).

Кроме того, вы можете использовать аннотации в качестве внутреннего маркера. Для моего проекта мы создали аннотации для этой цели: PresentForDependancyInjection и / или FrameworkEntryPoint. Это аннотации только для декораций, но они помогают понять смысл.

0 голосов
/ 09 января 2012

Насколько я понимаю, вы хотите найти способ справиться с некоторыми требованиями к фреймворкам без хлопот?Вы хотели бы избежать соглашения об именовании Java Bean, когда видите, что ваш код обрабатывается такими платформами? Насколько я знаю, это невозможно при использовании простого языка Java, вы можете использовать инструменты улучшения AOP / bytecode для украшения ваших классов, чтобысовместим с такими средами .... Это может работать, но у него есть и другие недостатки: - повышать сложность - обслуживание может быть сложным Вы можете использовать персональные аннотации для руководства расширением байт-кода ....

Другая точка зрения будетМожно использовать фрактальный подход, но эта структура не очень хорошо известна, даже если она одна из самых впечатляющих, которые я знаю.Вы можете посмотреть здесь: http://fractal.ow2.org/java.html

HTH Джером

0 голосов
/ 09 января 2012

Сделайте их protected, это метод, который обычно используется для предотвращения их вызова в другом месте.Если фреймворки хотят, чтобы они были public, то вы мало что можете сделать, если только вы не можете настроить их так, чтобы они этого не делали.

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