zoukankan      html  css  js  c++  java
  • List集合使用注意的问题

    在做自动保存草稿的功能遇到集合数据的问题,先贴自动保存草稿的代码

    /**
    * 每5 秒保存一次草稿
    */
    private void startDraftTimerTask(){
    if (draftTimer == null) {
    draftTimer = new Timer(true);
    draftTimer.schedule(new TimerTask() {
    @Override
    public void run() {
    if(!isStopSave){
    initDraft();
    addCacheDraft();
    }
    }
    }, 5000, 5000);
    }
    }
     initDraft()这个方法里面会执行下面的代码
     //保存已选照片
    Bimp.address.clear();
    for (int i = 0; i < photoList.size(); i++) {
    Bimp.address.add(photoList.get(i).getPath());
    }
    mDraft.setImageList(Bimp.address);
    自动保存草稿每5秒保存一次,配置草稿的内容 这个mDraft.setImageList(Bimp.address); 
    mDraft这个类是这个 ModelDraft 实体类
    /**
    * 类说明: 草稿箱
    *
    * @author wz
    * @version 1.0
    * @date 2015-1-26
    */
    public class ModelDraft extends SociaxItem {
    /**
    * 图片地址列表集合
    */
    private ArrayList<String> imageList = new ArrayList<>();

    public ArrayList<String> getImageList() {
    return imageList;
    }

    public void setImageList(ArrayList<String> imageList) {
    if(this.imageList.size() > 0) {
    this.imageList.clear();
    }
          this.imageList.=imageList;
        }
    }
    每次保存草稿都会执行下面清空数据并赋值
    mDraft.setImageList(Bimp.address);
     if(this.imageList.size() > 0) {
    this.imageList.clear();
    }
    this.imageList.=imageList;
    每次调用最后导致集合imageList 都是空集合,地址一样导致全部清空,一直没找见问题都不知道啥问题导致的
    最后修改为
    if(this.imageList.size() > 0) {
    this.imageList.clear();
    }
    this.imageList.addAll(imageList)
    然后数据就都有了,在此记录一下这个问题,以后集合使用尽量使用添加,不要直接赋值

    by 郝金刚


  • 相关阅读:
    windows下虚拟环境安装方法
    用python 将 pymysql操作封装成类
    通过python的logging模块输出日志文件
    详细User-Agent大全
    多个结果显示成一个group_concat函数
    pytest 失败用例重试
    Python selenium 三种等待方式详解
    自定义列标题 case when
    查询结果多个合并一个GROUP_CONCAT(EmployeeName)
    win7_32虚拟机网络设置
  • 原文地址:https://www.cnblogs.com/widgetbox/p/9542984.html
Copyright © 2011-2022 走看看