Чистое объявление метода в Java - PullRequest
2 голосов
/ 20 марта 2012

Я хочу написать чистый код. Поэтому при написании метода я хочу сообщить вызывающему методу о параметрах, типе возвращаемого значения, исключениях и т. Д. При вызове метода вызывающая сторона должна уже знать, может ли метод вернуть значение null или параметр может иметь значение null.

Я могу объяснить это в javadoc, но я хочу сделать это с аннотациями. Я знаю реактивные мозги, и теперь JSR305 пытается решить эту проблему, но я думаю, что их недостаточно.

Итак:

  1. Существует ли большая библиотека аннотаций для параметров и типов возвращаемых данных

  2. Является ли эта аннотация только для удобства чтения кода или она выдает исключение, если во время выполнения встречается неожиданное значение / результат?

  3. Объявления методов должны включать только проверенное основание исключение или его подклассы, например

    public void foo() throws ConnectionException, AuthenticationException {
    }
    
    public class AuthenticationException extends ConnectionException {
    }
    

Ответы [ 3 ]

2 голосов
/ 20 марта 2012

Зовите меня старой школой.Но разве это не то, для чего нужен Javadoc?

0 голосов
/ 20 марта 2012

Это может или не может быть то, что вы имеете в виду - аннотации на основе контракта позволяют вам указать, что параметры и тип возвращаемого значения метода должны соответствовать определенным условиям, чтобы считаться правильными.Взгляните на cofoja :

Контракты для Java позволяют аннотировать ваш код с контрактами в форме предусловий, постусловий и инвариантов.

Эти контрактыаннотации

  • легко записывать и читать,
  • и проверяться во время выполнения.

Помечающий код с контрактами поможет вам:

  • дизайн,
  • документ,
  • тест и
  • отладка

ваших программ.

0 голосов
/ 20 марта 2012

Относительно «3»: документация метода должна включать все возможные исключения, сгенерированные методом, то есть проверенные и не проверенные.

Относительно "2": аннотации не являются механизмом, который позволяет генерировать исключения во время выполнения. У них есть три основных цели: генерировать стандартный код, документацию и информацию для компилятора, что позволяет ему генерировать предупреждения. Посмотрите здесь:

Учебник по аннотациям

...