专栏首页移动开发Arrays.asList java.lang.UnsupportedOperationException 异常

Arrays.asList java.lang.UnsupportedOperationException 异常

java中为了避免我们自己手动将数组转换成list,提供了一个便捷的方法如下:

String[] a = new String[]{"a","b","c"};
Arrays.asList(a)

但是有一小点注意,不能对该方法返回的list进行增删操作,因为该方法返回的是Arrays的内部类 Arrays.asList源码:

public static <T> List<T> asList(T... a) {
   return new ArrayList<T>(a);//这里返回的Arrays的的内部类,继承AbstractList
}

AbstractList的add和remove方法源码:

public boolean add(E e) {
    add(size(), e);
    return true;
}

public void add(int index, E element) {
    throw new UnsupportedOperationException();
}

public E remove(int index) {
    throw new UnsupportedOperationException();
}

所以要想正常进行增删,可以使用如下方式

String[] a = new String[]{"a","b","c"};
new ArrayList<String>(Arrays.asList(a));

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SwipeRefreshLayout和RecyclerView使用的小问题

    SwipeRefreshLayout是官方提供的下拉刷新控件,在使用过程碰到一些小问题和大家分享下. 下面的代码只能监听下拉手势所引发的事件

    夏洛克的猫
  • Retrofit使用OkHttp保存和添加cookie

    Retrofit的cookie的保存和添加都可以用Interceptor来实现 下面是接收请求中返回并保存cookie的代码示例:

    夏洛克的猫
  • 一个简单的图片选择器

    ImagePicker 一个简单的图片选择器。为了配合头像选择,写了一个简单的功能。自己写图片选择器的目的也是不言而喻的,使界面风格保持整体的一致性。虽然可以用...

    夏洛克的猫
  • Tinker源码分析(一):TinkerApplication

    接入 Tinker 第一步就是改造 Application 。官方推荐是利用 @DefaultLifeCycle 动态生成 Application

    俞其荣
  • Springboot如何启动图形界面程序以及如何多开

    虽然很少有人用java写windows界面,但比如说我们有一个图形界面程序,是用java.awt写的,大概是这样的吧

    算法之名
  • 聊聊servicecomb-saga的alpha-server

    alpha-server是servicecomb-saga的分布式事务协调中心,采用spring boot开发,可以直接从jar包启动,需要依赖mysql或pg...

    codecraft
  • 利用HttpURLConnection发送请求

    每个 HttpURLConnection实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConn...

    Jack Chen
  • java练习本(2019-07-21)

    “ Love is the greatest refreshment in life. ”

    微笑的小小刀
  • 聊聊springboot的HeapDumpWebEndpoint

    spring-boot-actuator-autoconfigure-2.0.1.RELEASE-sources.jar!/org/springframewor...

    codecraft
  • java8学习整理二

    java8不但可以提高代码的运行的性能,而且实现起来很优雅,因此学习它是不错的选择。

    路行的亚洲

扫码关注云+社区

领取腾讯云代金券