当我可以使用它时,我是使用Guava 的忠实粉丝Preconditions
. 然而,Guava jar 是 2 MB,这可能相当大......
我有一个项目,其 jar 重 26k,因此问题是,是否有一个轻量级库具有这样的实用程序类,除了 JDK(6+)之外没有其他依赖项?虽然我可以创建一个,但我不想重新发明轮子!
当我可以使用它时,我是使用Guava 的忠实粉丝Preconditions
. 然而,Guava jar 是 2 MB,这可能相当大......
我有一个项目,其 jar 重 26k,因此问题是,是否有一个轻量级库具有这样的实用程序类,除了 JDK(6+)之外没有其他依赖项?虽然我可以创建一个,但我不想重新发明轮子!
我会按照评论中的建议使用整个库,但如果你真的想要小尺寸,在 guava 的文档中指定了一种推荐的方法 -使用 ProGuard 收缩 JAR
您可以将 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
链接:
您可能想查看 Fernando Cejas Arrow Library。它有先决条件、番石榴字符串、集合等。
看看我编写的需求 API。即将发布的 3.0.0 版本重量为 167k。它维护得很好并且非常易于使用:
需求 API
String actual = "foosball";
String expected = "ballroom";
requireThat(actual, "actual").isEqualTo(expected, "expected")
给你这个:
(如果您的终端不支持颜色,您将获得文本差异)