Mockito 提供:
when(mock.process(Matchers.any(List.class)));
如果 process
List<Bar>
取而代之的是 --- 如何避免警告?
原文由 Philippe Blayo 发布,翻译遵循 CC BY-SA 4.0 许可协议
Mockito 提供:
when(mock.process(Matchers.any(List.class)));
如果 process
List<Bar>
取而代之的是 --- 如何避免警告?
原文由 Philippe Blayo 发布,翻译遵循 CC BY-SA 4.0 许可协议
除了上面的 anyListOf
之外,您始终可以使用以下语法显式指定泛型:
when(mock.process(Matchers.<List<Bar>>any(List.class)));
Java 8 新允许基于参数的类型推断,因此如果您使用的是 Java 8,这也可能有效:
when(mock.process(Matchers.any()));
请记住,无论是 any()
还是 anyList()
都不会应用任何检查,包括类型或空值检查。 In Mockito 2.x, any(Foo.class)
was changed to mean “any instanceof
Foo”, but any()
still means “any value including null
”。
注意:以上已切换到较新版本的 Mockito 中的 ArgumentMatchers ,以避免与 org.hamcrest.Matchers
发生名称冲突。旧版本的 Mockito 将需要继续使用 org.mockito.Matchers
如上所述。
原文由 Jeff Bowman 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
对于 Java 8 及更高版本,这很简单:
对于 Java 7 及以下版本,编译器需要一些帮助。使用
anyListOf(Class<T> clazz)
: