当前位置: 首页 > news >正文

网站建设送企业邮箱吗注册公司注册地址

网站建设送企业邮箱吗,注册公司注册地址,公司注册地址提供,重庆网站建设及优化一.Arrays.asList() 返回的list不能add,remove Arrays.asList()返回的是List,而且是一个定长的List#xff0c;所以不能转换为ArrayList#xff0c;只能转换为AbstractList 原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没…一.Arrays.asList() 返回的list不能add,remove Arrays.asList()返回的是List,而且是一个定长的List所以不能转换为ArrayList只能转换为AbstractList 原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没有消失,对列表的任何操作最终都反映在数组上. 所以不支持remove,add方法的 下面是一段很简单的测试代码   public class MainFacade {  public static void main(String[] args) {  ListInteger list  Arrays.asList(1,2,3);  list.add(5);  System.out.print(list.toString());  }   }   不过上面的代码会throw出一个UnsupportedOperationException这样的异常   Exception in thread main java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at org.popkit.MainFacade.main(MainFacade.java:14) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)   终其原因是Arrays.asList方法返回的ArrayList是继承自AbstractList同时实现 了RandomAccess和Serializable接口定义如下   private static class ArrayListE extends AbstractListE  implements RandomAccess, java.io.Serializable   我们再来看看AbstractList这个类的定义   public abstract class AbstractListE extends AbstractCollectionE implements ListE    这时我们发现AbstractList这个类的set add remove方法定义如下 public void add(int index, E element) {  throw new UnsupportedOperationException();   }  public E set(int index, E element) {  throw new UnsupportedOperationException();   }  public E remove(int index) {  throw new UnsupportedOperationException();   }   现在知道了它throw UnsupportedOperationException异常的原因了。   通过上面的分析我们知道其实通过asList方法得到的List是只读的那么平时我们怎样避免这样的错误发生我们可以采用如下方法  ListInteger list  new ArrayList(Arrays.asList(1,2,3));   二、Arrays.asList()陷阱 代码如下  Java代码   public static void main(String[] args) {  int[] data  {1,2,3,4,5};  List list  Arrays.asList(data);  System.out.println(列表中的元素数量是  list.size());  }   注意这里输出的数量是1原因是在Arrays.asList中其接收的参数原型其实是泛型变长参数来的而基本类型是不能作为范型的参数按道理应该使用包装类型但这里缺没有报错  因为数组是可以泛型化的所以转换后在list中就有一个类型为int的数组  Java代码   int[] data  {1,2,3,4,5};  List list  Arrays.asList(data);  System.out.println(元素类型  list.get(0).getClass());  System.out.println(前后是否相等data.equals(list.get(0)));   可以看到输出的为元素类型:class [I   因为jvm不可能输出array类型array类型属于java.lang.reflect包通过反射访问  数组的这个类编译时候生成的。所以要改为  Java代码   Integer[] data  {1,2,3,4,5};   List list  Arrays.asList(data);   System.out.println(列表中的元素数量是  list.size());   此外假如如下代码  Java代码   //枚举声明一个星期   enum Week{Sun,Mon, Tue, Wed,Thu,Fri,Sat}       public static void main(String[] args) {  //工作日  Week[] workDays  {Week.Mon, Week.Tue, Week.Wed,Week.Thu,Week.Fri};  //转换为列表  ListWeek list  Arrays.asList(workDays);  //增加周六也为工作日  list.add(Week.Sat);   注意这里用add会出错因为是arrays.aslist中看代码可以看到这里返回的  ArrayList不是原来的传统意义上的java.util.arraylist了而是自己工具类的一个  静态私有内部类并没有提供add方法要自己实现所以这里是出错了因此  除非确信array.aslist后长度不会增加否则谨慎使用     ListString abcArrays.asList(a,b,c),因为这样的长度是无法再add的了
http://www.hkea.cn/news/14436134/

相关文章:

  • 浙江网站建设前十的公司手机pc端浏览器
  • 网站建设加数据库响应式网页设计实例
  • 苏州智能网站建设wordpress备份至七牛
  • 做网站切图尺寸网站建设与管理大纲
  • 网站设计方法成都网站建设的费用
  • 字体设计教程网站好网络最火的销售平台
  • 北京优化网站建设帮人家做网站
  • 深圳公司网站建设服务织梦网站模板更换
  • 微信如何做网站网站seo外链接
  • 建设牌官方网站免费发布信息的网站
  • 驻马店市住房和城乡建设局网站首页郑州汉狮做网站费用
  • 做网站徐州ios开发app
  • 做网站页面报价移动端cpu性能天梯图
  • 平面设计师长逛的网站有哪些怎样用dw做 网站首页
  • 书店网站html模板搜索引擎关键词排名优化
  • 网站logo是什么意思南昌网站开发建设
  • 西安微信网站建设公司做网站前应该怎么处理
  • 廊坊网站建设公司墨子公司网站建设费用 知乎
  • 买域名哪个网站好中药网站模板
  • 专业的深圳网站设计wordpress模板优劣
  • 如何做ps4的游戏视频网站自己给公司做网站难不难
  • 哪个平台做网站好深圳营销型网站需要多少钱
  • 做网站服务器和域名个人网站背景图片
  • 珠海专业网站建设自己如何做一个网络平台
  • 做网站服务怎么赚钱网站产品说明书模板
  • 绍兴网站seo柳州做网站去哪家公司好
  • 博物馆文化网站建设四川网站建设服务公司
  • 两学一做网站 新闻php网站多语言翻译怎么做
  • 广告推广网站网站模板分类
  • 网站即将上线页面代码网站模板源码下载网