Java中Object类中的两个常用方法

Java中Object类中的常用方法

Java中Object类中的toString()和equals()方法

众所周知,object类在java中是所用类的超类,一个类都会之间或间接的继承该类,所以我们要了解object类中的两个常用方法对以后的学习理解也是十分有帮助的

toString()方法

作用: 打印对象的信息

原始object中的toString()方法:打印对象的包名类名@地址值
我们通过源码也可以直接看出:

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

重写之后的toString() 方法:我们可以根据自己的需求将自己对象(Account为例)中的一些属性打印出来

 public String toString() {
        return "Account{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", money=" + money +
                '}';
    }

equals()方法

作用: 就是为了比较两者之间是否相等并返回一个boolean值

原始object中的equals()方法:比较对象的地址值是不是一样的

我们通过源码也可以直接看出:

 public boolean equals(Object obj) {
        return (this == obj);
    }

但是我们在日常创建的对象中,极大多数都是两个在堆内存地址值不同的对象,我们比较他们的内容是否相等,使用原始的equals()方法 明显是行不通的,所以我们根据比较的内容需要重写equals()方法。

例如:我们在domain中的实体类(Account为例)中一般要生成这样的equals()方法

 public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Account account = (Account) o;
        return Objects.equals(id, account.id) &&
                Objects.equals(name, account.name) &&
                Objects.equals(money, account.money);
    }

注意

object 中的equal()方法 不允许比较的对象为空,否则会报空指针异常,为了避免安全问题,一般使用Objects中的equals()方法 。

  public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }

对源码分析我们也能知道,Objects中封装的equals()方法对对象是否为null做了处理

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值