有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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);

如何修复错误


共 (2) 个答案

  1. # 1 楼答案

    不是每个List<Integer>都是ArrayList<Integer>dsp方法接受一个ArrayList<Integer>,因此为了使它工作,您将传递一个类型ArrayList<Integer>,或者将方法更改为接受List<Integer>

    另外,利用泛型,我将使用List<Integer>作为返回类型,而不是List

  2. # 2 楼答案

    您不能从父级强制转换到子级,您的dsp方法应该接受列表而不是ArrayList