AFAIK, вы не можете избежать непроверенного предупреждения, когда задействован литерал имени класса, и аннотация SuppressWarnings
- единственный способ справиться с этим.
Обратите внимание, что это хорошая форма - максимально сузить область действия аннотации SuppressWarnings
. Вы можете применить эту аннотацию к одному назначению локальной переменной:
public void testSomething() {
@SuppressWarnings("unchecked")
Foo<Integer> foo = EasyMock.createMock(Foo.class);
// Rest of test method may still expose other warnings
}
или используйте вспомогательный метод:
@SuppressWarnings("unchecked")
private static <T> Foo<T> createFooMock() {
return (Foo<T>)EasyMock.createMock(Foo.class);
}
public void testSomething() {
Foo<String> foo = createFooMock();
// Rest of test method may still expose other warnings
}