对于第一个问题,请看为什么ArrayList具有“实现列表”?
回答第二个问题
java.util.ArrayList<String> a = Arrays.asList(stra);
正如您提到的,
Arrays.asList返回其自己的AbstractList
实现,不幸的是,此代码的创建者也将其命名为ArrayList类。现在,由于我们不能水平转换,而只能垂直返回数组列表,
java.utli.ArrayList因此只能转换为
java.util.AbstractList或它的超类型
java.util.List,这就是第一个代码示例起作用的原因。



