编译器不能停止与该调用抱怨:如何删除从EasyMock.anyObject(List.class)警告称
EasyMock.anyObject(List.class)
我试图指定列表的类型
EasyMock.anyObject(List<MyType>.class)
但它似乎不是一个选项(无论如何,这是愚蠢的,因为Java会在编译期间擦除类型)
是否有一个干净的方法(@SuppressWarning不是一个干净的方式IMO)删除此警告?
谢谢
编译器不能停止与该调用抱怨:如何删除从EasyMock.anyObject(List.class)警告称
EasyMock.anyObject(List.class)
我试图指定列表的类型
EasyMock.anyObject(List<MyType>.class)
但它似乎不是一个选项(无论如何,这是愚蠢的,因为Java会在编译期间擦除类型)
是否有一个干净的方法(@SuppressWarning不是一个干净的方式IMO)删除此警告?
谢谢
这是不可能的。我将其称为通用限制。可悲的是,并不总是可以删除一些完全正常使用的警告(比如使用泛型类的类)。
然而,EasyMock的,你可以做到以下几点:
EasyMock.<List<MyType>> anyObject()
这将做同样的事情,但没有任何警告。你使用的anyObject是存在的,因为它更具可读性并且允许静态导入。
+1虽然看起来这是删除参数_type_的检查,但EasyMock并没有做这个检查。所以对于EasyMock来说,这是等同的。 – Gray 2014-01-31 16:57:51
有没有可用的参考或更广泛的解释说明上面的语法实际上在做什么? – 2014-07-30 18:58:19
如果你使用Java 8或更高版本,只需使用'EasyMock.anyObject()'就可以工作。 – 2017-08-23 16:30:36
仅作为建议:
interface A extends List<MyType> {};
EasyMock.anyObject(A.class)
什么警告?和哪个编译器? – irreputable 2010-10-06 18:40:57