编译器不能停止抱怨这个电话:
EasyMock.anyObject(List.class)
我尝试指定列表的类型
EasyMock.anyObject(List<MyType>.class)
但它似乎不是一个选项(无论如何,它是愚蠢的,因为java将在编译期间擦除类型)
是否有一种干净的方式(@SuppressWarning不是一种干净的IMO方式)来删除此警告?
谢谢
答案 0 :(得分:59)
这是不可能的。我称之为通用限制。遗憾的是,并不总是可以删除一些完全正常使用的警告(比如使用泛型类的类)。
但是,使用EasyMock,您可以执行以下操作:
EasyMock.<List<MyType>> anyObject()
这将做同样的事情,但没有警告。您使用的anyObject存在,因为它更具可读性并允许静态导入。
答案 1 :(得分:4)
仅作为建议:
interface A extends List<MyType> {};
EasyMock.anyObject(A.class)
答案 2 :(得分:0)
您也可以尝试使用Hamcrest匹配器anyObject()
,而不是isA
。它们之间的区别在于null
- 匹配器检查anyObject
上的值,与{{1}}不同。
您可以详细了解这些匹配器here