列表是原始类型。对泛型类型List <e>的引用应该参数化</e>

时间:2012-05-07 06:21:22

标签: java generics types

以下是我的语法

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

我收到的语法错误为:

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

请建议解决方案。

4 个答案:

答案 0 :(得分:30)

我相信

  

列表是原始类型。对泛型类型List的引用应该参数化

不是错误,而是警告。

如果您计划使用Java,理解泛型是一个基石,所以我建议您查看java的教程页面:

java generics tutorials

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

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

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

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

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

@SuppressWarnings("rawtypes")
List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
但是,不建议使用后者。

答案 1 :(得分:7)

您需要为其提供正确的通用类型,例如

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

答案 2 :(得分:0)

我在Eclipse中遇到过相同的警告,只需点击警告标志,就可以选择在哈希,列表,数组或者你有什么内容中添加一个类型参数。 这里的大讨论列表What is a raw type and why shouldn't we use it?

答案 3 :(得分:0)

您可以这样定义“publiesdList”:

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

警告将消失。