我正在寻找一种方法来确保Collect
(List
)中包含的所有对象从谓词中返回指定的值。
伪代码:
Collections.assertTrue(List<Ballons>, isBluePredicate)
我不认为使用当前的API可以实现这一点(也许我没有找到适当的位置)
如果确实存在,那么当函数第一次遇到假值时会退出吗?
答案 0 :(得分:5)
Iterables.all(Iterable, Predicate)方法是执行此操作的常用方法;断言需要是你自己的。
答案 1 :(得分:2)
番石榴本身没有任何断言。如果我理解正确的问题,您应该可以使用Iterables.all
assert Iterables.all(balloonsList, isBlue) : "some aren't blue";
文档没有说明如果一个结果是错误的话,是否会对其余元素进行谓词评估,但我怀疑它们不会。您可以轻松检查来源。
如果您确实需要对所有元素进行评估,那么您应该使用filter
并检查结果的大小。