| 1.ArrayS源码: public class Arrays
 {
 .....
 //数组转集合
 public static <T> List<T> asList(T... a)
 {
 return new ArrayList<>(a);
 }
 //内部类
 private static class ArrayList<E> extends AbstractList<E>
 implements RandomAccess, java.io.Serializable
 {
 内部没有add()方法。
 }
 ....
 }
 2.AbstractList源码:
 public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
 {
 public boolean add(E e) {
 add(size(), e);
 return true;
 }
 public void add(int index, E element) {
 throw new UnsupportedOperationException();
 }
 }
 3.ArratList源码
 public class ArrayList<E> extends AbstractList<E>
 implements List<E>, RandomAccess, Cloneable, java.io.Serializable
 {.......
 add(E E)...
 ........
 }
 
 4.Arrays类内定义了ArrayList内部类,该内部类并没有实现List接口,add方法继承自AbstractList,AbstractList类内的add方法会抛异常。反观ArrayList源码,虽继承了AbstractList,也同时实现了List接口。
 
 |