慎用Collections.copy(dest,src)

故事背景:

操作读卡模块,返回数据是读到的所有标签的ID,我是将所有ID放在一个List里面的。然后在读卡器返回数据时,我更新RecyclerView的数据。
第一次我将RecyclerView的Adapter的数据集合mTagIDs=data(都是List<String>),这是相当糟糕了,这压根就是将mTagIDs重新指向新的对象,根本不会更新RecyclerView的数据。
然后我就是用了Collections.copy(dest,src)这个方法,然后就IndexOutOfBoundsException,看一下这个方法的注释

Copies all of the elements from one list into another. After the
operation, the index of each copied element in the destination list
will be identical to its index in the source list. The destination
list must be at least as long as the source list. If it is longer, the
remaining elements in the destination list are unaffected.

就是dest的长度要大于src的长度,不然就越界。可是我怎么知道dest和src谁更长啊。

解决方式:

所以我只好放弃这个方法,改用Collections.addAll(Collection<? super T> c, T... elements);而且将之前的方法返回数据由List<String>改成了String[].

强势粘贴代码

没码可粘,创造条件也要粘

public static <T> boolean addAll(Collection<? super T> c, T... elements) {
        boolean result = false;
        for (T element : elements)
            result |= c.add(element);
        return result;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,094评论 19 139
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa阅读 9,102评论 0 6
  • 现场开会就要以结果为导向,压缩会议时间,站着开会,不说少说废话,与会人员要提前做好充分准备,若会上无法得出结论,也...
    曲同宁阅读 220评论 0 0
  • 斯蒂芬金,恐怖小说大师,读《肖申克的救赎》是我第一次读他的作品,也是第一次读恐怖小说。在书店里看到这本书,是冲着《...
    冰下的梦_58132阅读 855评论 0 1
  • 好多年没有完整地写文章了。 西安。今年秋天的雨特别多,生活一如既往的平淡,淡到无波无澜。 而我这个年龄,也早已不会...
    阅读与行走阅读 110评论 0 0

友情链接更多精彩内容