1. User User1 = new User("ll",1);
    2. User User2 = new User("ll",1);
    3. System.out.println(User1.equals(User2));

    User类有name和age两个属性。创建两个User的对象里面的属性一样,但是equals对比结果为false,
    因为User的默认父类Object中equals的是地址,我想要对比User的属性想要重写equals。

    1. class User{
    2. public String name;
    3. public int age;
    4. @Override
    5. public boolean equals(Object obj) {
    6. //判断是否对比的是同一个类
    7. if(this == obj)
    8. return true;
    9. //判断值是否为空
    10. else if(obj == null)
    11. return false;
    12. //判断是否是对比类型
    13. else if (getClass() != obj.getClass())
    14. return false;
    15. //一个向下转型
    16. User othis = (User) obj;
    17. //对比age和name
    18. return age==othis.age&&Objects.equals(name,othis.name);
    19. }
    20. public User(String name,ing age){
    21. this.name=name;
    22. this.age=age;
    23. }
    24. }