Java 对象数组添加仅添加最后一条记录

Java 对象数组添加仅添加最后一条记录,java,object,arraylist,Java,Object,Arraylist,我正在尝试向arraylist添加对象 对象定义为: ExercisesGroup group = new ExercisesGroup(); ArrayList<ExercisesGroup> groups = new ArrayList<ExercisesGroup>(); 数组列表定义为: ExercisesGroup group = new ExercisesGroup(); ArrayList<ExercisesGroup> groups =

我正在尝试向arraylist添加对象

对象定义为:

ExercisesGroup group = new ExercisesGroup();
ArrayList<ExercisesGroup> groups = new ArrayList<ExercisesGroup>();
数组列表定义为:

ExercisesGroup group = new ExercisesGroup();
ArrayList<ExercisesGroup> groups = new ArrayList<ExercisesGroup>();
当我返回arraylist“groups”时,会添加正确数量的结果,但是数据都是相同的,即为每个插槽添加最后一条记录

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

说明2
2.
说明2
2.

知道我做错了什么吗?

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

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

另外,如果将
变量的声明从
ArrayList
更改为
List
,效果会更好。请参阅

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

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

另外,如果将
变量的声明从
ArrayList
更改为
List
,效果会更好。请参阅

看起来您是在循环外部创建练习组,因此始终引用同一对象。将ExerciseGroup构造函数放在循环内。

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