相关疑难解决方法(0)

是否有可能解决"为varargs参数创建T的通用数组"编译器警告?

这是有问题的代码的简化版本,一个泛型类使用具有泛型类型参数的另一个类,并且需要将一个泛型类型传递给具有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);
    }
Run Code Online (Sandbox Code Playgroud)

}

有没有正确的方法将泛型参数传递给varargs方法而不会遇到此警告?

当然有点像

assembler.assemble("hello", new T[] { something });
Run Code Online (Sandbox Code Playgroud)

由于无法创建通用数组,因此无效.

java generics

150
推荐指数
4
解决办法
5万
查看次数

标签 统计

generics ×1

java ×1