0

私はこれを前に見たことがありません.. 次のコードがあります。ある ArrayList のオブジェクトを別のオブジェクトに割り当てる単純なネストされたループです。

しかし、内側のループ内では、オブジェクトには null 値を持つ重複変数がいくつか (すべてではない) ありますか?!? 私は何を間違っていますか?!?

最初の画像は、ローカル変数「member」を示しています。これは、ArrayList「members」内のオブジェクトへの参照です。これは、null 値を持つ重複した変数を持つオブジェクトです。

2 番目の画像は、他のオブジェクトの「オファー」を示しています。

以下のコード。ヘルプ?

null 値を持つ重複変数 あるべき姿

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

もちろん、同じ名前の 2 つの変数が継承階層に存在できます。

このコードを試して、メイン メソッドの にブレークポイントを作成してくださいSystem.out.println(subclass);Baseデバッガーでは、変数が と で定義されているため、変数が 2 回存在することがわかります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 に答える