lombok use a few basic annotations

lombok is a java development in simple code very useful plug-in tools, this blog several of the more commonly used notes to record, share learning experiences.

Use lombok notes, purpose and role lies not have to write some code (such as Getter, Setter, Constructor, etc.) are often repeated to write a.

First, use a few notes:

  • @Data
    use this annotation, you do not go hand Getter, Setter, equals, canEqual, hasCode, toString methods, and the notes will be automatically added to the list at compile time.
  • @AllArgsConstructor
    adding a constructor is used, which contains the constructor parameter field properties of all declared
  • @NoArgsConstructor
    created after using a no-argument constructor
  • @Builder
    About Builder is more complex, one of the role Builder is to address in a class constructor has a lot of cases, it eliminates the need to write a lot of trouble constructor, in design mode of thinking is: to use an inner class instantiate an object, to avoid an excessive number constructor class,

Then, by a simple code examples:

1) First, the establishment of a simple class, and notes with lombok: Note that this is the code before annotations, annotation can be posted back with the generated code is compared

@Data //生成getter,setter等函数
@AllArgsConstructor //生成全参数构造函数
@NoArgsConstructor//生成无参构造函数
@Builder
public class test1 {
    String name;
    String age;
    String sex;
}

2) Test inlet:

 public static void main(String[] args) {
 //使用@Builder注解后,可以直接通过Builder设置字段参数
        test1 t1=new test1.test1Builder()
                .name("wang")
                .age("12")
                .sex("man")
                .build();
    System.out.println("name is"+t1.getName()+'\n'+"age is :"+t1.getAge());

}

3) After viewing compiled by the class, the amount of code before and after comparing notes, found to save a lot of code to write:

public class test1 {
    String name;
    String age;
    String sex;
public static test1.test1Builder builder() {
    return new test1.test1Builder();
}

public String getName() {
    return this.name;
}

public String getAge() {
    return this.age;
}

public String getSex() {
    return this.sex;
}

public void setName(String name) {
    this.name = name;
}

public void setAge(String age) {
    this.age = age;
}

public void setSex(String sex) {
    this.sex = sex;
}

public boolean equals(Object o) {
    if (o == this) {
        return true;
    } else if (!(o instanceof test1)) {
        return false;
    } else {
        test1 other = (test1)o;
        if (!other.canEqual(this)) {
            return false;
        } else {
            label47: {
                Object this$name = this.getName();
                Object other$name = other.getName();
                if (this$name == null) {
                    if (other$name == null) {
                        break label47;
                    }
                } else if (this$name.equals(other$name)) {
                    break label47;
                }

                return false;
            }

            Object this$age = this.getAge();
            Object other$age = other.getAge();
            if (this$age == null) {
                if (other$age != null) {
                    return false;
                }
            } else if (!this$age.equals(other$age)) {
                return false;
            }

            Object this$sex = this.getSex();
            Object other$sex = other.getSex();
            if (this$sex == null) {
                if (other$sex != null) {
                    return false;
                }
            } else if (!this$sex.equals(other$sex)) {
                return false;
            }

            return true;
        }
    }
}

protected boolean canEqual(Object other) {
    return other instanceof test1;
}

public int hashCode() {
    int PRIME = true;
    int result = 1;
    Object $name = this.getName();
    int result = result * 59 + ($name == null ? 43 : $name.hashCode());
    Object $age = this.getAge();
    result = result * 59 + ($age == null ? 43 : $age.hashCode());
    Object $sex = this.getSex();
    result = result * 59 + ($sex == null ? 43 : $sex.hashCode());
    return result;
}

public String toString() {
    return "test1(name=" + this.getName() + ", age=" + this.getAge() + ", sex=" + this.getSex() + ")";
}

@ConstructorProperties({"name", "age", "sex"})
public test1(String name, String age, String sex) {
    this.name = name;
    this.age = age;
    this.sex = sex;
}

public test1() {
}

public static class test1Builder {
    private String name;
    private String age;
    private String sex;

    test1Builder() {
    }

    public test1.test1Builder name(String name) {
        this.name = name;
        return this;
    }

    public test1.test1Builder age(String age) {
        this.age = age;
        return this;
    }

    public test1.test1Builder sex(String sex) {
        this.sex = sex;
        return this;
    }

    public test1 build() {
        return new test1(this.name, this.age, this.sex);
    }

    public String toString() {
        return "test1.test1Builder(name=" + this.name + ", age=" + this.age + ", sex=" + this.sex + ")";
    }
}

}

Summary: lombok notes will be very convenient to use, can be more to understand the role of different annotations.
Another posted some related blog:
Lombok install and use some of the annotation features:
https://blog.csdn.net/motui/article/details/79012846
the Java Builder:
http://www.cnblogs.com/moonz-wu/archive /2011/01/11/1932473.html
https://www.cnblogs.com/begin1949/p/4930896.html

                                </div>
Released five original articles · won praise 0 · Views 171

Guess you like

Origin blog.csdn.net/qq_44813090/article/details/104090989