【问题标题】:How to create array of generic type?如何创建泛型类型的数组?
【发布时间】:2012-06-23 22:45:12
【问题描述】:

如何创建泛型数组?通用Arrays.copyOf() 方法如何工作?它返回通用数组的副本。因此可以创建通用数组。但是怎么做?怎么写出类似copyOf()的方法?

【问题讨论】:

标签: java arrays generics


【解决方案1】:

如果您需要在运行时创建它,您至少需要知道当时的类型,因此您可以使用以下方法:

a = (T[]) Array.newInstance(c,s);

其中T 是泛型类型,cT 的类,s 是初始大小。

文档here

【讨论】:

    【解决方案2】:

    我对你的问题感到困惑,但我会尽力回答。

    如果你想创建一个泛型类型的数组,包含该数组的类必须使用泛型进行参数化。例如,这有效:

    class MyClass<T> {
    
          T[] myGenericArray;
    
    }
    

    在大多数情况下,我敢打赌您正在做的事情可以通过 Object[] 或类似性质的东西来实现,尽管如果您将您的问题更具体一些,我可能会提供更多帮助。

    【讨论】:

    • “这行得通” 不,它没有。阅读 Java 中的泛型、类型擦除和数组。
    • @missingfaktor:给出的声明没有错。它只是没有回答问题(如何实际创建一个数组)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多