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)操作!

    后语:

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

  • 相关阅读:
    POJ3122贪心或者二分(分蛋糕)
    POJ2118基础矩阵快速幂
    POJ2118基础矩阵快速幂
    POJ1328贪心放雷达
    POJ1328贪心放雷达
    hdu4642博弈(矩阵)
    hdu4642博弈(矩阵)
    POJ1042 贪心钓鱼
    POJ3160强连通+spfa最长路(不错)
    POJ3114强连通+spfa
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/6476979.html
Copyright © 2011-2022 走看看