zoukankan      html  css  js  c++  java
  • 由于java.util.Arrays.asList(...)导致的异常

    前言:

       Collections.toArray()与Arrays.asList() 是Java API提供的友好的相互转换工具,日常开发中用于列表和数组之间的转换非常方便,但今天测试时,发现一下隐藏的坑。。。


    Exception:

    terms=[此物只应天上有, 我你他, 12306,一按我帮您]
    Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.add(AbstractList.java:148)
    at java.util.AbstractList.add(AbstractList.java:108)
    at Hello.main(Hello.java:13)

    测试代码如下:

    import java.util.Arrays;
    import java.util.List;
    
    
    public class Hello {
        
        public static void main(String[] args) {
          
            String ss[] =  {"此物只应天上有","我你他","12306,一按我帮您"};
            List<String> terms = Arrays.asList(ss);
            System.out.println("terms="+terms);
            terms.remove("12306");
            terms.add("testAdd");
            System.out.println("terms="+terms);
        }
    
    }

    反复调试,都是在"terms.add(xxx)"抛异常;

    无奈之下只好翻阅Java API,发现:

    晕!Arrays.asList(arr)返回的是一个固定大小的列表,无法对其执行删除(remove)或增加(add)操作!

    后语:

         程序虐我千百遍,我却待它如初恋。若发现类似的坑,以上教训希望能给其他朋友作为参考借鉴!

  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/6476979.html
Copyright © 2011-2022 走看看