美文网首页
[java基础] bean类基本方法重写

[java基础] bean类基本方法重写

作者: ae7729ac3ac8 | 来源:发表于2017-08-15 23:27 被阅读0次

类基本方法(toString、hashCode、equals、compareTo)重写

使用jar包为 apache的commons集lang包

1. toString()

每一个对象,在转成String字符串的时候都会调用这个方法

实现一

public class Person {
   String name;
   int age;
   boolean smoker;

   ...

   public String toString() {
     return new ToStringBuilder(this).
       append("name", name).
       append("age", age).
       append("smoker", smoker).
       toString();
   }
 }

实现二

public String toString() {
   return ToStringBuilder.reflectionToString(this);
 }

2. hashCode()

可以说hashCode和equals是要一起重写的。在比较对象是否相同时,会使用hashCode作为该对象的唯一值。常用场景LIst、Set、Map

public class Person {
  String name;
  int age;
  boolean smoker;
  ...
  public int hashCode() {
    // you pick a hard-coded, randomly chosen, non-zero, odd number
    // ideally different for each class
    return new HashCodeBuilder(17, 37).
      append(name).
      append(age).
      append(smoker).
      toHashCode();
  }
}

3. equals(Object obj)

这个方法用来比较传入对象是否与自身相等。

public boolean equals(Object obj) {
  if (obj == null) { return false; }
  if (obj == this) { return true; }
  if (obj.getClass() != getClass()) {
    return false;
  }
  MyClass rhs = (MyClass) obj;
  return new EqualsBuilder()
                .appendSuper(super.equals(obj))
                .append(field1, rhs.field1)
                .append(field2, rhs.field2)
                .append(field3, rhs.field3)
                .isEquals();
 }

4. compareTo(Object o)

实现排序接口,主要用于List的排序

public int compareTo(Object o) {
    MyClass myClass = (MyClass) o;
    return new CompareToBuilder()
      .appendSuper(super.compareTo(o)
      .append(this.field1, myClass.field1)
      .append(this.field2, myClass.field2)
      .append(this.field3, myClass.field3)
      .toComparison();
  }

相关文章

  • [java基础] bean类基本方法重写

    类基本方法(toString、hashCode、equals、compareTo)重写 使用jar包为 apach...

  • hashCode记录

    Java基本都会重写Object中的hashCode方法,归类记录hashCode的重写 基本数据类型 基本数据类...

  • Java注解

    Java提供的5个基本Annotation @Override用于限定重写父类方法,在编译时检查父类是否包含被重写...

  • java实现多线程的6种方式

    java实现多线程基本上有5种办法,第一继承Thread类,重写run方法;第二实现继承Runnable接口,重写...

  • 20K程序员竟然Java的equals()问题都没有搞清楚,基础

    提醒 如果你是Java大神肯定不屑这些基础文章,请跳过 Object类equals方法,默认实现是什么? 方法重写...

  • 2018-07-10

    JAVA重写的条件 条件: 子类继承父类,并重写父类的方法 1、 重写要求子类中的覆盖方法与父类中被覆盖的方法有...

  • Java自学-接口与继承 隐藏

    Java中的方法隐藏 与重写类似,方法的重写是子类覆盖父类的对象方法 隐藏,就是子类覆盖父类的类方法 步骤 1 :...

  • Java-方法重写

    Java方法重写:1、Java方法重写一般存在于有继承关系的类中2、重写的方法名,参数顺序、类型、个数,返回值须一...

  • Java技术栈梳理

    Java语言 基础, 基本类型, 操作符, 运算符, 表达式 面向对象, 类, 继承, 多态, 重写, 重载 S...

  • java重写toString和equals方法

    java重写toString和equals方法 java.lang.Object java 所有类的顶层父类 一个...

网友评论

      本文标题:[java基础] bean类基本方法重写

      本文链接:https://www.haomeiwen.com/subject/afrbrxtx.html