Как удалить предупреждение из вызова EasyMock.anyObject (List.class) - PullRequest
31 голосов
/ 06 октября 2010

Компилятор не может перестать жаловаться с этим вызовом:

EasyMock.anyObject(List.class) 

Я пытался указать тип списка

EasyMock.anyObject(List<MyType>.class)

но это, кажется, не вариант (в любом случае, это глупо, так как java будет стирать тип во время компиляции)

Есть ли чистый способ (@SuppressWarning не является чистым способом IMO), чтобы удалить это предупреждение?

Спасибо

Ответы [ 3 ]

59 голосов
/ 08 октября 2010

Это невозможно. Я назову это общим ограничением. К сожалению, не всегда возможно удалить предупреждение для некоторого совершенно нормального использования (например, использование класса универсального класса).

Однако с EasyMock вы можете делать следующее:

EasyMock.<List<MyType>> anyObject()

, который будет делать то же самое, но без предупреждения. Используемый вами объект anyObject существует, поскольку он немного более читабелен и позволяет выполнять статический импорт.

4 голосов
/ 06 октября 2010

Только в качестве предложения:

interface A extends List<MyType> {};
EasyMock.anyObject(A.class) 
0 голосов
/ 14 июня 2018

Вы также можете попробовать использовать совпадение Hamcrest isA() вместо anyObject().Разница между ними в том, что isA -matcher проверяет значения на null, в отличие от anyObject.Вы можете узнать больше об этих матчах здесь

...