分享

集合异常java.lang.UnsupportedOperationException

 ansatsing 2017-11-03
//下面的代码会出异常
private List<String> playCards = new ArrayList<String>();//存储一次要出的牌的图片地址

playCards = Splitter.on(",").splitToList(showCard);

playCards.clear();

=================================分界线==============================================

//下面的代码不出异常
private List<String> playCards = new ArrayList<String>();//存储一次要出的牌的图片地址

playCards = new ArrayList<String>(Splitter.on(",").splitToList(showCard));

playCards.clear();


原因 :

ava.lang.UnsupportedOperationException 异常。原因在于使用Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(),add()等,所以throw UnsupportedOperationException。

解决方法是采用构造方法ArrayAdapter(Context, int, List), 第三个参数传入ArrayList, 将Objects[] 转化为 ArrayList,

new ArrayList(Arrays.asList(objects))

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多