In meinem UT-Code, unten extrahiert, sehe ich eine Warnung:
Unchecked generic array creation for varargs parameter of
type Matcher <? extends String> []
Ich habe in einer anderen Stackoverflow-Antwort über die Probleme mit einem generischen Parameter zu einer varargs-Methode gelesen.
Aber gibt es eine gute Möglichkeit, diesen Test etwas zu restrukturieren, um die hässliche Warnung loszuwerden und @SuppressWarnings
zu vermeiden?
Wenn dies Java 7+ ist, kann die von Ihnen verwendete Bibliothek die Methode mit @SafeVarargs
annotieren. Dies steht jedoch nicht unter Ihrer Kontrolle.
Andernfalls gibt es keine Möglichkeit, eine ungeprüfte Warnung mit dieser Methode zu vermeiden, da die Methode grundsätzlich ein Array eines parametrisierten Typs benötigt und es unmöglich ist, einen nicht null
-Wert dieses Typs ohne eine ungeprüfte Operation irgendwo zu erhalten (entweder in Ihrer Methode oder in einer anderen von Ihnen aufgerufenen Methode).
Oder, wenn Sie sich die Dokumentation für CoreMatchers
ansehen, scheint es, dass Sie die alternative Überladung von allOf
in Betracht ziehen könnten, die statt dessen einen Iterable
von Matcher benötigt. Das können Sie ohne ungeprüfte Operationen verwenden.
Tags und Links java generics hamcrest generic-collections