Lombok也許好多人都用過@Data註解,就不用寫Getter,Setter了。
----------補加一下
@Accessors(chain = true) //鏈式set @RequiredArgsConstructor(staticName = "of") 生成有參數的構造 和@NonNull一起
------------------------------
介紹幾個:
@Data //生成Getter,Setter,equals,canEqual,hasCode,toString等方法 @AllArgsConstructor //生成全參數構造函數 @NoArgsConstructor//生成無參構造函數 @Builder(toBuilder=true) //Builder的作用之一是爲了解決在某個類有很多構造函數的情況,也省去寫很多構造函數 修改實體,要求實體上添加@Builder(toBuilder=true)
@Accessors(chain = true) //鏈式set
@Data //生成Getter,Setter,equals,canEqual,hasCode,toString等方法
@AllArgsConstructor //生成全參數構造函數
@NoArgsConstructor//生成無參構造函數
@Builder(toBuilder = true) //Builder的作用之一是爲了解決在某個類有很多構造函數的情況,也省去寫很多構造函數 修改實體,要求實體上添加@Builder(toBuilder=true)
@RequiredArgsConstructor(staticName = "of")
public class Student {
/**
* 告訴編譯器,參數非空 和RequiredArgsConstructor配合生成靜態構造方法
*/
@NonNull
private String name;
private Integer age;
private String sex;
}
測試類;
public static void main(String[] args) {
//@Builder 不用寫構造函數 相當於只用兩個屬性的構造函數
Student student = Student.builder()
.name("張三")
.age(18)
.build();
System.out.println(student);
System.out.println("=====================================");
//修改屬性
String name = "李四";
student = student.toBuilder()
.name(name)
.age(22)
.sex("男")
.build();
System.out.println(student);
System.out.println("================驗證鏈式set @Accessors(chain = true)註解===================");
Student student2 =new Student()
.setAge(25)
.setName("張飛")
.setSex("男");
System.out.println(student2);
System.out.println("=============靜態構造方法========================");
List<String> list= Lists.newArrayList();
HashMap<String, String> objectObjectHashMap = Maps.newHashMap();
Student student3=Student.of("李白")
.setAge(74)
.setSex("男");
System.out.println(student3);
}
}
結果:
代碼就得騷起來!!!(還能解決idea和SonarLint的重複代碼掃描)