我觉得问这个问题有点儿蠢,但是我还是想问一下。
在下面的代码中,List<HasId> ids = list
这一行会出现编译错误:
public class MyGarbageClass {
public void myMethod(List<MyCompany> list){
List<HasId> ids = list;
}
interface HasId {
int getId();
}
class MyCompany implements HasId{
private int id = 5;
@Override
public int getId() {
return id;
}
}
}
我的公司实现了HasId接口,所以我认为应该能够对其进行赋值。为什么不能呢?更重要的是,有没有一种简单的方法将其分配给HasId对象列表。
更新:List ids = (List<HasId>)list;
在无法转换类型时也会出错。