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

2022-09-02 23:14:10

以下是我的语法

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

我收到以下语法错误:

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

请提出解决方案。


答案 1

我相信

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

不是错误,而是警告。

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

java 泛型教程

因此,如果您知道 中包含什么类型的对象,则可以执行以下操作:publiesdList

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

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

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

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

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

但是,不建议使用后者。


答案 2

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

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