Java Generics:无法将List<SubClass>转换为List<SuperClass>?
遇到这个问题:
List<DataNode> a1 = new ArrayList<DataNode>();
List<Tree> b1 = a1; // compile error: incompatible type
其中,类型 DataNode 是 Tree 的子类型。
public class DataNode implements Tree
令我惊讶的是,这适用于数组:
DataNode[] a2 = new DataNode[0];
Tree[] b2 = a2; // this is okay
这有点奇怪。任何人都可以对此做出解释吗?