5

オンhasItemsになっている「実際の」コレクションでHamcrest を使用したいArrayList<? extends SomeInterface>

assertThat(ArrayList<? extends SomeInterface>, hasItems(InstanceOfSomeInterface))

コンパイラは次のように述べています。

assertThat(T, Matcher<T>)型のメソッドAssertは引数に適用できません(ArrayList<capture#9-of ? extends MyInterface>, Matcher<Iterable<MyInterface>>)

何がうまくいかないのですか?それについて私は何ができますか(私は本当にここでHamcrestを使いたいです)?

4

1 に答える 1

4
ArrayList<SomeInterface> newList = new ArrayList<SomeInterface>();
newList.addAll(origList);
assertThat(newList, hasItems(InstanceOfSomeInterface));

Assert.assertThat が?を使用してコーディングされていないのは残念です。スーパー?あなたが説明するものを可能にするために拡張されます。

于 2011-09-14T10:41:50.363 に答える