AFAIK, vous ne pouvez pas éviter l'avertissement décoché est impliqué un nom de classe littérale, et l'annotation SuppressWarnings
est la seule façon de gérer cela.
Notez que c'est une bonne forme pour réduire autant que possible la portée de l'annotation SuppressWarnings
. Vous pouvez appliquer cette annotation à une seule cession 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'assistance:
@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
}
La syntaxe devrait probablement être: SomeClass_Integer interface statique privée étend SomeClass {} J'ai le même problème et c'est le travail autour Je l'utilise donc l'approche marchera. Mais j'espère que quelqu'un a la réponse que nous cherchons –