À ma connaissance, vous ne pouvez pas éviter l'avertissement non vérifié lorsqu'un nom de classe littéral est impliqué, et que l'option SuppressWarnings
est la seule façon de gérer cela.
Notez qu'il est de bon ton de restreindre le champ d'application de l'option SuppressWarnings
dans la mesure du possible. Vous pouvez appliquer cette annotation à une seule affectation de variable locale :
public void testSomething() {
@SuppressWarnings("unchecked")
Foo<Integer> foo = EasyMock.createMock(Foo.class);
// Rest of test method may still expose other warnings
}
ou utiliser une méthode d'aide :
@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
}