如何从 EasyMock.anyObject(List.class) 调用中删除警告

2022-09-01 07:26:00

编译器无法停止抱怨这个调用:

EasyMock.anyObject(List.class) 

我试图指定列表的类型

EasyMock.anyObject(List<MyType>.class)

但它似乎不是一个选项(无论如何,这是愚蠢的,因为java会在编译过程中擦除该类型)

有没有一种干净的方法(@SuppressWarning不是IMO的干净方法)来删除此警告?

谢谢


答案 1

这是不可能的。我称之为通用限制。可悲的是,并不总是能够删除某些完全正常用法的警告(例如使用泛型类的类)。

但是,使用EasyMock,您可以执行以下操作:

EasyMock.<List<MyType>> anyObject()

这将做同样的事情,但没有警告。您使用的 anyObject 之所以存在,是因为它更具可读性,并且允许静态导入。


答案 2

仅作为建议:

interface A extends List<MyType> {};
EasyMock.anyObject(A.class) 

推荐