最佳答案
这是有问题的代码的简化版本,一个泛型类使用另一个具有泛型类型参数的类,并且需要将一个泛型类型传递给具有 varargs 参数的方法:
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);
}
}
有没有正确的方法在不遇到此警告的情况下将泛型参数传递给 varargs 方法?
当然了
assembler.assemble("hello", new T[] { something });
由于无法创建泛型数组,因此无法工作。