循环中的重复变量(空副本)?

时间:2013-09-18 14:00:28

标签: java android eclipse

我以前从未见过这个。我有以下代码,一个简单的嵌套循环,将一个对象从一个ArrayList分配给另一个对象的对象。

但是,在内部循环中,对象有一些(不是全部)具有空值的重复变量?!?我做错了什么?!?

第一个图像显示了局部变量" member&#34 ;,对ArrayList"成员"内部对象的引用。这是具有空值的重复变量的对象。

第二张图片显示另一个对象"提供",看起来像人们期望的那样。

以下代码。帮助

Duplicate variables with null value As it should be

public static void setMembersForOffers(ArrayList<WPMemberPost> members, ArrayList<WPOfferPost> offers)
{
    int memberCount = members.size();
    int offerCount = offers.size();

    for (int i=0; i<offerCount; i++)
    {
        WPOfferPost offer = offers.get(i);

        if (offer.memberIdentifier != null)
        {
            for (int j=0; j<memberCount; j++)
            {
                WPMemberPost member = members.get(j);
                String id = member.identifier; // NULL?!? (Expected "436")

                if (offer.memberIdentifier.equalsIgnoreCase(id))
                {
                    offer.member = member;
                    break;
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

当然,两个具有相同名称的变量可以存在于继承层次结构

尝试此代码并在System.out.println(subclass);的main方法中创建断点。 在调试器中,您将看到该变量存在两次,因为它在BaseSubclass中定义。

public class Main {

    public static void main(String[] args) {
        Subclass subclass = new Subclass();
        subclass.someString = "test";
        System.out.println(subclass);
    }

    private static class Base {

        public String someString;

    }

    private static class Subclass extends Base {

        public String someString;

    }
}

enter image description here