Guava学习--------Object Method

Object Method
  • static boolean equal(Object a, Object b):内部其实先对a进行非空判断,然后在使用equals()方法

    当使用对象的equals()方法时,如果对象为null则会抛出NullPointerException异常;所以推荐使用Objects.equal(Object a, Object b)方法判断两个对象是否相等

    Objects.equal("a", null); // false
    Objects.equal(null, "a"); // false
    Objects.equal("a", "a"); // true
    Objects.equal("a", "b"); // false
  • hashCode

    为一个或多个对象生成hashCode

  • toString

    一个书写良好的toString方法在调试的时候将会非常有用。

    // Returns "ClassName{x=1}"
    MoreObjects.toStringHelper(this)
      .add("x", 1)
      .toString();
    
    // Returns "MyObject{x=1}"
    MoreObjects.toStringHelper("MyObject")
      .add("x", 1)
      .toString();
  • compare / compareTo

    自己书写的compareTo()方法,在需要比较的属性多的时候,将会变得非常混乱、难以调试。

    所以推荐使用ComparisonChain类,链式的调用比较各个属性。

    class Person implements Comparable<Person> {
      String name = "foo";
      int age = 21;
    
      @Override
      public int compareTo(Person o) {
          return ComparisonChain.start()
                  .compare(name, o.name)
                  .compare(age, o.age)
                  .result();
      }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值