Есть ли красивый способ утверждения pre- условия в методах Java?

У многих моих функций есть полная загрузка кода проверки сразу под объявлениями:

if ( ! (start < end) ) {
    throw new IllegalStateException( "Start must be before end." );
    }

Я хотел бы точно указать допустимые диапазоны определенных входных данных - например, A> B , C => 1 или str_d.length ()> 0.

Учитывая, что некоторые из моих функций имеют довольно много аргументов, которые должны быть проверены, я могу в конечном итоге написать множество шаблонов только для проверки предварительных условий. Я пишу библиотеку, которая в основном будет использоваться нетехническими разработчиками. Мы обнаружили, что проверка входных данных функций - лучший способ помочь нашим пользователям правильно управлять нашим API. Чем раньше мы сообщим об ошибке, тем меньше работы придется выполнять нашим клиентам.

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

Коллега рассказал мне об особенностях языка программирования Eiffel, которые позволяют описывать пре / пост / инвариантные условия очень естественным образом без повторения большого количества шаблонного кода. Есть ли надстройка к языку Java, которая позволит мне использовать часть этой магии?

11
задан Salim Fadhley 25 July 2011 в 12:44
поделиться