首页 > 编程语言 > 详细

《Java核心技术》第一讲

时间:2020-09-01 22:30:00      阅读:68      评论:0      收藏:0      [点我收藏+]

 

5、equals、hashcode、toString

package com.macro.mall;

import java.util.Objects;

public class Employer {
    private String name;
    private int age;

    @Override
    public boolean equals(Object otherObject) {
        //检测Object是否为空
        if (otherObject == null) {
            return false;
        }
        //检测this和Object是否指向同一个对象
        if (this == otherObject) {
            return true;
        }
        //比较this和Object是否属于同一个类
        if (getClass() != otherObject.getClass()) {
            return false;
        }
        //将Object转换成相应的类类型变量
        Employer employer = (Employer) otherObject;
        /**
         由于会存在属性值为空的情况,因此如果属性值都为空,Objects.equals则返回true
         如果是数组类型比较的话,那么就使用Arrays.equals进行比较
         */
        return name == employer.name && age == employer.age
                && Objects.equals(name, employer.name) && Objects.equals(age, employer.age);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    /**
     * 通过使用getClass().getName()方法,防止类名硬编码
     * 此外,如果子类继承该类的话,那么可以就可以通过super.toString进行调用。
     * 如
     *      public String toString() {
     *          return super.toString()
     *          +"[bonus=" + bonus
     *          + "]";
     *          }
     */

    @Override
    public String toString() {
        return getClass().getName() +
                "name=" + name
                + ", age=" + age
                + "}";
    }
}

  

《Java核心技术》第一讲

原文:https://www.cnblogs.com/zengjiao/p/13598839.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!