我以前从未见过这个。我有以下代码,一个简单的嵌套循环,将一个对象从一个ArrayList分配给另一个对象的对象。
但是,在内部循环中,对象有一些(不是全部)具有空值的重复变量?!?我做错了什么?!?
第一个图像显示了局部变量" member&#34 ;,对ArrayList"成员"内部对象的引用。这是具有空值的重复变量的对象。
第二张图片显示另一个对象"提供",看起来像人们期望的那样。
以下代码。帮助
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;
}
}
}
}
}
答案 0 :(得分:3)
当然,两个具有相同名称的变量可以存在于继承层次结构
中尝试此代码并在System.out.println(subclass);
的main方法中创建断点。
在调试器中,您将看到该变量存在两次,因为它在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;
}
}