Java数组中的泛型

Posted

技术标签:

【中文标题】Java数组中的泛型【英文标题】:Generics in Java array 【发布时间】:2014-03-31 08:14:38 【问题描述】:

首先,关于 SO 本身有多个帖子解释了为什么泛型和数组不会在 Java 中混合使用。

点赞Generic arrays in Java

但我的问题是 - 如果是这样,当我执行以下操作时为什么会在 Eclipse 中收到警告以及如何消除此警告消息。

private RotatingQueue<RotatingQueueData> rQueue[] =  new RotatingQueue[15];

警告: 此行有多个标记 - 类型安全:RotatingQueue[] 类型的表达式需要未经检查的转换为 符合RotatingQueue[]

【问题讨论】:

如果将作业的右侧更改为 new RotatingQueue&lt;RotatingQueueData&gt;[15] 会发生什么? 更好:new RotatingQueue&lt;&gt;[15]? (Java 7 已经出局,甚至 Java 8) 是的,我知道,但我不想引入新的未知数,因为我们不知道 Andy 正在运行什么版本。 @DavidWallace & LutzHorn 这些都行不通。不允许创建参数化类型的数组。 @Andy897 是的。你可以压制它。更好的是避免创建参数化类型的数组。而是使用List&lt;RotatingQueue&lt;RotatingQueueData&gt;&gt; 【参考方案1】:

无法创建参数化类型的数组。因此,您必须接受警告,但可能会像这样忽略它:

@SuppressWarnings("unchecked")
List<String> lists[] = new List[15];

如果您尝试继续使用List&lt;String&gt;,我不知道还有其他方法可以做到这一点。

【讨论】:

以上是关于Java数组中的泛型的主要内容,如果未能解决你的问题,请参考以下文章

Java中的泛型

请问下,C#的泛型数组中的 ToDictionary 方法怎么用? 详细说明请进。。

java中的泛型 求详细解释

Java泛型——使用Gson解析复杂的泛型嵌套泛型数据结构

java 定义泛型类的问题

Swift 中的泛型数组