暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Arrays.asList()源码分析

面向对象的隔壁老王 2017-08-08
198


        我们来看以下代码:



        一个很自然的list添加操作,但是结果却不合人意。运行程序后会抛出以下异常。


        这个问题期初我是百思不得其解啊,带着问题我们来看源码。


        返回一个ArrayList,没毛病啊,怎么会抛异常呢,看来我们要继续研究下去,看一看这个“ArrayList”的源码。


        原来返回的这个ArrayList并不是我们平常使用的ArrayList,而是Arrays的一个私有的静态内部类,它也继承了AbstractList,但是并没有重写add和remove方法,这两个方法在AbstractList的默认实现中是直接抛异常的。这时一切就真相大白了。


        我们叫这样不能修改集合结构的静态内部类为视图,其中映射表中keySet也是一个视图。


文章转载自面向对象的隔壁老王,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论