185

モッキートは以下を提供します:

when(mock.process(Matchers.any(List.class)));

代わりにprocessa を取る場合に警告を回避する方法は?List<Bar>

4

4 に答える 4

303

Java 8以降の場合、これは簡単です。

when(mock.process(Matchers.anyList()));

Java 7以下の場合、コンパイラには少しの助けが必要です。使用anyListOf(Class<T> clazz)

when(mock.process(Matchers.anyListOf(Bar.class)));
于 2012-05-09T08:34:44.733 に答える
21

上記に加えてanyListOf、次の構文を使用していつでもジェネリックを明示的に指定できます。

when(mock.process(Matchers.<List<Bar>>any(List.class)));

Java 8 では、パラメーターに基づく型推論が新たに許可されるため、Java 8 を使用している場合は、これも同様に機能する可能性があります。

when(mock.process(Matchers.any()));

型や null のチェックを含め、どのチェックany()も適用されないことに注意してください。anyList()Mockito 2.x では、 「任意のFoo」any(Foo.class)を意味するように変更されましたが、「 」を含む任意の値を意味します。instanceofany()null

注: 上記は、Mockito の新しいバージョンではArgumentMatchersorg.hamcrest.Matchersに切り替えられ、 との名前の競合を回避します。古いバージョンの Mockito は、上記のように使い続ける必要がありorg.mockito.Matchersます。

于 2015-09-22T10:16:03.933 に答える