Java:ArrayList用add添加的元素最后被覆盖

问题描述:

在List的add方法添加对象时都是最后的一条记录的重复,出错代码如下:

    public List<Bus> find(Bus condition) {
        Connection connect=DaoFactory.getConnect();
        ResultSet rs;
        Statement stmt;
        List<Bus> AuthorityListByName=new ArrayList<Bus>();
        String sql="SELECT * from bus";
        //使用Connection来创建一个Statment对象
        try {
            stmt = connect.createStatement();
            rs = stmt.executeQuery(sql);
            while(rs.next()){
                //condition=new Bus();
                condition.setBusCode(rs.getString("busCode"));
                condition.setBusLicense(rs.getString("busLicense"));
                condition.setBusType(rs.getString("busType"));
                condition.setBusStatus(rs.getString("busStatus"));
                condition.setStartTime(rs.getString("startTime"));
                AuthorityListByName.add(condition);
            }
        } catch (SQLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        
        return AuthorityListByName;
    }

效果:
出错

出错原因:

自始至终,condition只new了一个对象,无论AuthorityListByName循环了多少次,始终用了condition这一个对象,那个AuthorityListByName.add(condition);这一句其实加的都是同一个对象,那么当然里面始终只有一个对象了。

解决方法:

每次循环重新new一个condition对象 condition=new Bus();
(即去掉上图代码中注释部分)

效果图:
成功
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 传送门 解读阿里Java开发手册(v1.1.1) - 异常日志 前言 阿里Java开发手册谈不上圣经,但确实是大量...
    kelgon阅读 4,394评论 4 50
  • 最近新淘了一部剧——北京女子图鉴,说实在的刚开始的时候觉得会不会又是一部深夜食堂呢,所以看到海报的第一眼我是有些抵...
    来自未知错误阅读 103评论 0 0
  • 她照往常一样收拾办公桌,塞上耳机,穿过两个红绿灯路口汇入等车大军中。选一首喜欢的歌,或是打个电话回家问些日常又好像...
    大大陈wendy阅读 158评论 0 1
  • 在找实习工作之前,我经历了做毕业项目,写毕业论文,准备毕业答辩。期间,也有公司到学校来招聘或者招聘会,可是,我总觉...
    城市里的牛奶阅读 578评论 2 8