public class Test{
public void setMembersValues(List list){
List<Member> memberList = new ArrayList<Member>();
for(Object o : list){
String[] str = o.split("\n");
if(str.equalsIgnoreCase("<member>")){
/**I want to create separate member objects for each
list iterration.But member refers same object.**/
Member member = new Member();
for(int i =0; i<str.length;i++){
if(str[i].equalsIgnoreCase("<member/>")){
memberList.add(member);
break;
}else{
if(str[i].equalsIgnoreCase("name"))
member.setName(str[i].split("//")[1]);
}else if(str[i].equalsIgnoreCase("Address")){
member.setAddress(str[i].split("//")[1]);
}
}
}
}
}
}
此处有两个列表,但只创建了一个成员对象。我想为每次迭代创建单独的成员对象,并将其添加到memberList。
我该怎么办呢?
答案 0 :(得分:3)
我想为每次迭代创建单独的成员对象,并将其添加到memberList。
每次绕过内循环时,都需要创建一个新对象。您正在循环外创建一个Member
并将其多次添加到列表中。
答案 1 :(得分:1)
您可以在for循环中移动您的Member实例:
for(int i =0; i<str.length;i++){
if(str[i].equalsIgnoreCase("<member/>")){
memberList.add(member);
Member member = new Member();
break;
[被修改]