0

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

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

第一张图片显示了局部变量“member”,它是对 ArrayList“members”中对象的引用。这是具有空值重复变量的对象。

第二张图片显示了另一个对象的“报价”,看起来就像人们期望的那样。

代码如下。帮助?

具有空值的重复变量 它应该是

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;
                }
            }
        }
    }
}
4

1 回答 1

3

当然,两个同名变量可以存在于继承层次结构中

试试这段代码,并在 main 方法中设置断点System.out.println(subclass);。在调试器中,您将看到该变量存在两次,因为它是在Base和中定义的Subclass

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;

    }
}

在此处输入图像描述

于 2013-09-18T14:09:57.537 回答