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