lcaohoanq
376 words
2 minutes
Lombok 101
- Let’s learn about most popular Java library - Lombok, with most useful, popular annotations.
Getter, SetterAnnotation
- @Getter
- @Setter
import lombok.AccessLevel;import lombok.Getter;import lombok.Setter;
@Getter@Setterpublic class GetterSetter {
private int id; private String name;
@Setter(AccessLevel.PROTECTED) private int yob;
/* Above annotation is specify the access level of the setter method.
protected void setYob (int yob){ this.yob = yob; } */
public GetterSetter(int id, String name, int yob) { this.id = id; this.name = name; this.yob = yob; }
public static void main(String[] args) { System.out.println(new GetterSetter(1, "Hoang", 1999).getYob()); }
}ToString Annotation
- @ToString
import lombok.AllArgsConstructor;
//@lombok.ToString //ToString(id=1, name=Hoang, surname=Le)//@lombok.ToString(includeFieldNames = false) //ToString(1, Hoang, Le)//@lombok.ToString(exclude = "id") //ToString(name=Hoang, surname=Le)@lombok.ToString(of = {"name", "surname"}) //ToString(name=Hoang, surname=Le)
@AllArgsConstructorpublic class ToString {
private int id; private String name; private String surname;
public static void main(String[] args) { System.out.println(new ToString(1, "Hoang", "Le")); }
/* @lombok.ToString: default with option (includeFieldNames = true), will return ToString(id=1, name=Hoang, surname=Le) @lombok.ToString(includeFieldNames = false) //ToString(1, Hoang, Le)
All non-static, non-transient fields are printed. If you want to exclude some fields, you can use the exclude parameter. @lombok.ToString(exclude = "id") //ToString(name=Hoang, surname=Le)
Otherwise, you can select each field you wish to be taken into account. @lombok.ToString(of = {"name", "surname"}) //ToString(name=Hoang, surname=Le) */
}Data Annotation
- @Data
@lombok.Datapublic class Data {
/* @lombok.Data will generate the following methods: - Getter for all fields - Setter for all non-final fields - equals, hashCode, and toString methods - Constructor with all final fields */
private final int id; private final String birthPlace; private String name; private String surname;
public static void main(String[] args) { Data data = new Data(1,"1"); //only the id is required to be initialized //Data data2 = new Data(1,"Hoang","Vietnam") //error System.out.println(data); }
}…ArgsConstructor Annotation
- @NoArgsConstructor
- @AllArgsConstructor
- @RequiredArgsConstructor
import lombok.AllArgsConstructor;import lombok.NoArgsConstructor;import lombok.RequiredArgsConstructor;
@NoArgsConstructor(force = true)@AllArgsConstructor@RequiredArgsConstructorpublic class ArgsConstructor {
private int id; private String name; private String surname; private final String birthPlace; //the final field is required to be initialized in the constructor
/* // @NoArgsConstructor public Author() {}
// @AllArgsConstructor public Author(int id, String name, String surname, String birthPlace) { this.id = id this.name = name this.surname = surname this.birthPlace = birthPlace }
// @RequiredArgsConstructor public Author(String birthPlace) { this.birthPlace = birthPlace } */
public static void main(String[] args) { ArgsConstructor author = new ArgsConstructor(1, "Hoang", "Le", "Vietnam"); System.out.println(author); }
} Lombok 101
https://blog.lcaohoanq.works/posts/lombok/