このマッチャーは、マッチャーのコレクションをチェックし、それらがすべて成功した場合に成功します。
署名は次のとおりです。
public static <T> Matcher<T> allOf(Iterable<Matcher<? extends T>> matchers)
なぜこれはイテラブルを取るのですか
Matcher<? extends T>
そしてそうではない
Matcher<? super t>
それがそのまま正しい場合は、説明してください。
タイプは、一致する (テストされる) オブジェクトから推測されるため、一致するオブジェクトまたはそのスーパークラスと互換性のあるマッチャーを iterable が保持することが期待されます。同様に、サブクラスとのみ互換性のあるマッチャーを iterable に保持させるのは間違っているようです。