平常使用的时候,会将数组转换成列表进行处理。
但经过这种方式处理以后,却不能再添加和删除元素,意思就是说不能修改,
生成的结果很固定,也很稳定!
为什么?
List<T> list = Arrays.asList<T...t>;
这个方法返回的对象是java.util.Arrays.ArrayList,而不是java.util.ArrayList.
这两个ArrayList有什么区别吗?
前面这个是个静态内部类,只继承了AbstractList抽象类,抽象类实现了List这个接口,
他实现了部分List接口的方法。实例也能向上转型为List接口。
后面的这个不仅继承了AbstractList抽象类,而且还实现了List接口,List的接口的方法在这个类
得到了完全的实现。他也可以向上转型为List接口,但他的方法比前一个要丰富很多。
大家也注意到,AbstractList的add,remove方法,调用时是会抛出异常的,unsupportException.
目的就是不让客户端程序员来调用。我想这么设计就是为了稳定asList()方法转换而来的List吧!