以下是我的语法
List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
我收到的语法错误为:
List is a raw type. References to generic type List<E> should be parameterized.
请建议解决方案。
答案 0 :(得分:30)
我相信
列表是原始类型。对泛型类型List的引用应该参数化
不是错误,而是警告。
如果您计划使用Java,理解泛型是一个基石,所以我建议您查看java的教程页面:
因此,如果你知道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>();
警告将消失。