In meinem UT-Code, unter extrahieren, ich sehe Warnung:"Ungeprüfter generische Array-Erstellung für varargs Parameter vom Typ Matcher <erweitert String?> []" Warnung CoreMatchers.allOf()
Unchecked generic array creation for varargs parameter of
type Matcher <? extends String> []
Ich habe in einem anderen stackoverflow answer über die Probleme mit einem generischen Parameter zu einer Varargs-Methode gelesen.
Aber gibt es eine nette Möglichkeit, diesen Test leicht zu restrukturieren, um die hässliche Warnung loszuwerden und @SuppressWarnings
zu vermeiden?
package stackoverflow;
import org.hamcrest.CoreMatchers;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.matchers.JUnitMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
public class FooTest {
@SuppressWarnings({"unchecked"})
@Test
public void sampleTest() {
Assert.assertThat("foo bar",
CoreMatchers.allOf(
containsString("foo"),
containsString("bar"),
not(containsString("baz"))));
}
}
Beachten Sie, dass der Compiler erzwingt, dass '@ SafeVarargs' auf eine ** final ** -Methode gesetzt ist, was natürlich an Schnittstellen nicht möglich ist. – Brice