首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能解决“为varargs参数创建T的泛型数组”的编译器警告?

有没有可能解决“为varargs参数创建T的泛型数组”的编译器警告?
EN

Stack Overflow用户
提问于 2009-09-18 15:21:25
回答 7查看 58.8K关注 0票数 157

这是相关代码的简化版本,一个泛型类使用另一个具有泛型类型参数的类,并且需要将其中一个泛型类型传递给具有varargs参数的方法:

代码语言:javascript
复制
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方法而不会遇到此警告?

当然像这样的东西

代码语言:javascript
复制
assembler.assemble("hello", new T[] { something });

不起作用,因为您不能创建通用数组。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1445233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档