使用できるときは、グアバのPreconditions
大ファンです。ただし、Guava jar は 2 MB であり、かなり大きくなる可能性があります...
jar の重量が 26k のプロジェクトがあるので、問題は、JDK (6+) 以外に依存関係のない、そのようなユーティリティ クラスを持つ軽量ライブラリがあるかどうかです。作成することはできますが、車輪の再発明はしたくありません。
使用できるときは、グアバのPreconditions
大ファンです。ただし、Guava jar は 2 MB であり、かなり大きくなる可能性があります...
jar の重量が 26k のプロジェクトがあるので、問題は、JDK (6+) 以外に依存関係のない、そのようなユーティリティ クラスを持つ軽量ライブラリがあるかどうかです。作成することはできますが、車輪の再発明はしたくありません。
私が作成したRequirements APIを見てください。間もなくリリースされる 3.0.0 の重量は 167k です。非常によく維持されており、非常に使いやすいです。
要件 API
String actual = "foosball";
String expected = "ballroom";
requireThat(actual, "actual").isEqualTo(expected, "expected")
あなたにこれを与えます:
(端末が色をサポートしていない場合は、代わりにテキストの差分が表示されます)
代わりに、valid4j を hamcrest-matchers と共に使用できます (Maven Central で org.valid4j:valid4j として見つかります)。
入力検証 (回復可能な例外のスロー) の場合:
import static org.valid4j.Validation.*;
validate(argument, isValid(), otherwiseThrowing(InvalidException.class));
または前提条件(実際にはアサーションなど)の場合:
import static org.valid4j.Assertive.*;
require(x, greaterThan(0)); // throws RequireViolation extends AssertionError
リンク: