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<RotatingQueueData>[15]
会发生什么?
更好:new RotatingQueue<>[15]
? (Java 7 已经出局,甚至 Java 8)
是的,我知道,但我不想引入新的未知数,因为我们不知道 Andy 正在运行什么版本。
@DavidWallace & LutzHorn 这些都行不通。不允许创建参数化类型的数组。
@Andy897 是的。你可以压制它。更好的是避免创建参数化类型的数组。而是使用List<RotatingQueue<RotatingQueueData>>
。
【参考方案1】:
无法创建参数化类型的数组。因此,您必须接受警告,但可能会像这样忽略它:
@SuppressWarnings("unchecked")
List<String> lists[] = new List[15];
如果您尝试继续使用List<String>
,我不知道还有其他方法可以做到这一点。
【讨论】:
以上是关于Java数组中的泛型的主要内容,如果未能解决你的问题,请参考以下文章