我正在尋找一種方法來確保Collect
(List
)中包含的所有對象都從謂詞返回指定的值。Google Guava:謂詞assertTrue
僞代碼:
Collections.assertTrue(List<Ballons>, isBluePredicate)
我不認爲這是可能與目前的API(也許我在正確的位置不是找)
如果這樣做會在函數退出時存在首先遇到錯誤的值?
我正在尋找一種方法來確保Collect
(List
)中包含的所有對象都從謂詞返回指定的值。Google Guava:謂詞assertTrue
僞代碼:
Collections.assertTrue(List<Ballons>, isBluePredicate)
我不認爲這是可能與目前的API(也許我在正確的位置不是找)
如果這樣做會在函數退出時存在首先遇到錯誤的值?
番石榴本身不具有任何斷言。如果我沒有理解這個問題的權利,你應該能夠使用Iterables.all
assert Iterables.all(balloonsList, isBlue) : "some aren't blue";
文檔不明確斷言是否爲元素的其餘部分,如果評估結果一個假,但我懷疑他們不會。你可以平凡地檢查來源。
如果你確實需要它來爲所有元素進行評估,那麼你應該使用filter
和檢查結果的大小。
Iterables.all(Iterable, Predicate)的方法是做到這一點的正常方式;斷言將需要你自己的。
這是真的。 'Iterables.all'委託給'Iterators.all',其具有短路邏輯在所述第一故障返回false。 – Ray