私はグアバを見ていました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);
}
}
Guavaでこのようなことは可能ですか? そうでない場合、これには別の Java ライブラリがありますか?