Dies ist eine vereinfachte Version des fraglichen Codes. Eine generische Klasse verwendet eine andere Klasse mit generischen Typparametern und muss einen der generischen Typen an eine Methode mit varargs-Parametern übergeben:
class Assembler<X, Y> {
void assemble(X container, Y... args) { ... }
}
class Component<T> {
void useAssembler(T something) {
Assembler<String, T> assembler = new Assembler<String, T>();
//generates warning:
// Type safety : A generic array of T is
// created for a varargs parameter
assembler.assemble("hello", something);
}
}}
Gibt es eine korrekte Möglichkeit, den generischen Parameter an eine varargs-Methode weiterzugeben, ohne auf diese Warnung zu stoßen?
Natürlich so etwas wie
assembler.assemble("hello", new T[] { something });
funktioniert nicht, da Sie keine generischen Arrays erstellen können.