Java编译错误:列表<整数>无法转换为ArrayList<整数>
该程序类似于:
public class Proj {
public List dsp(ArrayList<Integer> list) {
return list;
}
public static void main(String[] args) {
int[] nums = {4,3,2,7,8,2,3,1};
List<Integer> bl = new ArrayList<>();
for (int var : nums) {
bl.add(var);
}
Proj p = new Proj();
p.dsp(bl);
System.out.println(bl);
}
}
错误消息:
incompatible types: List cannot be converted to ArrayList at the line
p.dsp(bl);
如何修复错误
# 1 楼答案
不是每个
List<Integer>
都是ArrayList<Integer>
。dsp
方法接受一个ArrayList<Integer>
,因此为了使它工作,您将传递一个类型ArrayList<Integer>
,或者将方法更改为接受List<Integer>
另外,利用泛型,我将使用
List<Integer>
作为返回类型,而不是List
# 2 楼答案
您不能从父级强制转换到子级,您的dsp方法应该接受列表而不是ArrayList