国内新闻

您所在位置:首页 > 国内新闻 > 正文

为什么阿里巴巴开发手册明确说明 Arrays.asList() 不能使用其修改方法?

文章作者:www.wwxingxi.com发布时间:2019-09-13浏览次数:1917

作者:我想问几天

资料来源:

阿里巴巴java开发规范说,当使用工具类Arrays.asList方法将数组转换为集合时,不能用它来修改与集合相关的方法。它的add/remove/clear方法将抛出UnsupportedOperationException。让我们看看它出现的原因。情况就是这样。

我们来做一个测试

Public static void main(String [] args){List list=Arrays.asList('a','b','c'); //list.clear; //list.remove('a'); //List.add('g'); }

注释的三行可以单独解压缩,法规中提到的例外确实在运行后出现。让我们看看Arrays.asList的作用。

公共静态列表asList(T . a){return new ArrayList(a); }

它似乎是一个非常普通的方法,但事实上你指向ArrayList并发现ArrayList不是我们通常使用的ArrayList。

私有静态类ArrayList扩展AbstractList实现Random Access,java.io.Serializable {private static final long series Version UID= - L;私人决赛E;

ArrayList(E [] array){a=对象。 requireNon(array);}

——