0

我正在尝试将对象添加到数组列表。

对象定义为:

ExercisesGroup group = new ExercisesGroup();

数组列表定义为:

ArrayList<ExercisesGroup> groups = new ArrayList<ExercisesGroup>();

然后我在循环中填充对象(rs 是来自数据库的结果集):

while (rs.next()){
    group.setExerciseGroupId(rs.getInt("idbodyarea"));
    group.setExerciseGroupDescription(rs.getString("bodyareadescription"));
    groups.add(group);
}

当我返回arraylist 'groups' 时,添加了正确数量的结果,但是数据都是相同的,即为每个插槽添加最后一条记录。

<exerciseGroupsReturn>
        <exerciseGroupDescription>Description2</exerciseGroupDescription>
        <exerciseGroupId>2</exerciseGroupId>
 </exerciseGroupsReturn>
 <exerciseGroupsReturn>
        <exerciseGroupDescription>Description2</exerciseGroupDescription>
        <exerciseGroupId>2</exerciseGroupId>
 </exerciseGroupsReturn>

知道我做错了什么吗?

4

2 回答 2

3

您需要在每次迭代时创建对象的新实例:

while (rs.next()){
   group = new ExercisesGroup();
   //...
}

此外,如果将groups变量的声明从ArrayList<ExercisesGroup>更改为 会更好List<ExercisesGroup>。请参阅“编程到接口”是什么意思?

于 2013-04-25T17:39:20.700 回答
0

看起来您正在循环之外创建 ExcerciseGroup,因此您始终引用同一个对象。将ExerciseGroup 构造函数放入循环中。

于 2013-04-25T17:40:39.817 回答