首页 新闻 会员 周边

java equals问题解答

0
[待解决问题]

@Data
@Accessors(chain = true)
public class Species {
public String name;
public Integer age;
public Boolean sex;
}

@Data
public class Person extends Species {
private String address;
private String phoneNumber;

@Override
public String toString() {
    return String.format("address:%s,phoneNumber:%s,name:%s,age:%s,sex:%s", address, phoneNumber, name, age, sex);
}

}

public class Test {
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Person person = new Person();
person.setName("tom" + i);
person.setAge(20 + i);
//person.setPhoneNumber("1352343212"+i);
//person.setAddress(String.format("杭州%s区", i));
person.setSex(i % 2 == 0);

        personList.add(person);
    }

    personList.forEach(o -> {
        System.out.println(String.format("%s-%s", o.toString(), personList.indexOf(o)));
    });
}

}

各位大神,截图中的 o.equals(elementData[i]) 为啥会相等,按理比较两个对象的内容 o对象的name,age和elementData[i]都不一样;求解~

leerh的主页 leerh | 菜鸟二级 | 园豆:207
提问于:2021-12-01 20:20
< >
分享
所有回答(1)
0

equals 方法如果你没有在你自己的类中重写,那么就是继承自 Object的,就是比较2个对象的内存地址是否一致,不会比较其中的字段是否一样

wang_yb | 园豆:4891 (老鸟四级) | 2021-12-02 16:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册