17

下面是我的语法

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

我收到以下语法错误:

List is a raw type. References to generic type List<E> should be parameterized.

请提出解决方案。

4

4 回答 4

40

我相信

List 是一种原始类型。对泛型类型 List 的引用应该被参数化

不是错误,而是警告。

如果您打算使用 Java,那么了解泛型是一个基石,因此我建议您应该查看 Java 的教程页面:

java泛型教程

因此,如果您知道 中包含什么类型的对象publiesdList,则可以这样做:

List<YourType> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

如果列表中有多种类型的对象,则可以使用通配符:

List<?> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

或者,如果您只是想摆脱警告,则可以像这样抑制它:

@SuppressWarnings("rawtypes")
List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

但是不推荐后者。

于 2012-05-07T22:01:02.247 回答
8

你需要给它正确的泛型类型,例如

List<String> publiesdList = ...
List<String> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
于 2012-05-07T06:23:20.937 回答
1

您可以这样定义“publiesdList”:

List<String> publiesdList = new List<String>();

警告将消失。

于 2016-07-21T13:06:39.590 回答
0

我在 Eclipse 中也遇到过相同的警告,只需单击警告标志并选择将类型参数添加到 Hash、List、Array 或其他内容。此处讨论的大列表什么是原始类型,为什么我们不应该使用它?

于 2014-05-30T01:26:06.903 回答