Java:无法转换为List的集合

时间:2017-03-13 20:54:22

标签: java arraylist collections

在下面的代码中,我收到一条错误消息,指出集合无法转换为List。为什么不?我想当方法saveObject被称为部分

List e = c;

等于

List e = ArrayList();

因为c - 尽管类型为Collection - 最后指的是ArrayList

代码:

import java.util.*;
class Test {
int i;
Object prevObject;
public void saveObject(List e) {
    prevObject = e;
    i++;
}

public static void main (String[] args) {
    Test t = new Test();
    Collection c = new ArrayList();
    t.saveObject(c);
    }
}

1 个答案:

答案 0 :(得分:2)

参数绑定发生在编译时,而不是运行时。您正尝试将Collection(可能是实现Collection的任何内容)传递给期望List子类的方法。有Collection个类没有实现List,因此编译器无法保证在运行时可以进行强制转换。