我在看番石榴的Preconditions
。如果您在实现方法中使用它们很好,但是可以使用它们来声明接口契约吗?
例如,在 C# 合同中,您可以这样做 -
using System.Diagnostics.Contracts;
[ContractClass(typeof(FooContract))]
interface IFoo
{
void Bar(int i);
}
[ContractClassFor(typeof(IFoo))]
abstract class FooContract : IFoo
{
public void Bar(int i)
{
Contract.Requires(i >= 0);
}
}
在番石榴中有这样的可能吗?如果没有,是否还有另一个 java 库呢?