2010-10-06 16 views
28

kompilator nie może przestać narzekać z tej rozmowy:Jak mogę usunąć ostrzeżenie o EasyMock.anyObject (List.class) zadzwonić

EasyMock.anyObject(List.class) 

starałem się określić lista typ

EasyMock.anyObject(List<MyType>.class) 

ale to nie wydaje się być opcja (tak, to jest głupie, ponieważ java usunie typ podczas kompilacji)

Czy istnieje czysty sposób (@SuppressWarning nie jest czystym IMO), aby usunąć to ostrzeżenie?

Dziękuję

+0

jakie ostrzeżenie? i który kompilator? – irreputable

Odpowiedz

55

To nie jest możliwe. Nazwie to ogólne ograniczenie. Niestety nie zawsze jest możliwe usunięcie ostrzeżenia o prawie całkowicie normalnym użytkowaniu (jak użycie klasy klasy ogólnej).

Jednak z EasyMock można wykonać następujące czynności:

EasyMock.<List<MyType>> anyObject() 

który zrobi to samo, ale bez ostrzeżenia. Zastosowany obiekt AnyObject istnieje, ponieważ jest bardziej czytelny i umożliwia import statyczny.

+0

+1 Chociaż wygląda na to, że usuwa się zaznaczenie parametru _type_ parametru, program EasyMock i tak nie wykonuje tego sprawdzenia. Tak więc dla EasyMock jest to odpowiednik. – Gray

+1

Czy istnieje dostępne odniesienie lub szersze wyjaśnienie, co właściwie robi powyższa składnia? –

+0

Jeśli korzystasz z Java 8 i nowszych wersji, po prostu użyjesz 'EasyMock.anyObject()'. –

4

tylko jako sugestię:

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