我的很多函数在声明之下都有一大堆验证代码:
if ( ! (start < end) ) {
throw new IllegalStateException( "Start must be before end." );
}
Run Code Online (Sandbox Code Playgroud)
我想精确地指定某些输入的有效范围 - 例如A> B,C => 1或str_d.length()> 0.
鉴于我的一些函数有很多必须经过验证的论证,我最终可能会编写大量的样板来验证前置条件.我正在编写一个主要由非技术开发人员使用的库,我们发现验证函数输入是帮助我们的用户正确操作API的最佳方法.我们越早提出错误,客户就越不需要做的工作.
是否有更优雅的方法来指定我的方法中的前置条件,后置条件(以及可能的不变条件).
一位同事告诉我有关Eiffel编程语言的一个特性,它允许以非常自然的方式描述前/后/不变条件,而无需重复大量的样板代码.是否有Java语言的附加组件,这将允许我使用这些魔术?