在每次迭代中单独创建 Java 对象


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。

请问我该怎么做?

我想为每个迭代创建单独的成员对象并将其添加到 memberList。

每次绕过内部循环时,都需要创建一个新对象。 您将在循环外部创建单个Member,并将其多次添加到列表中。

您可以在 for 循环中移动您的成员实例化:

        for(int i =0; i<str.length;i++){
            if(str[i].equalsIgnoreCase("<member/>")){
                memberList.add(member);
                Member member = new Member();
                break;

[已编辑]

最新更新