1、區(qū)別
????????@NoArgsConstructor:注解在類上,為類提供一個無參的構(gòu)造方法。
????????@AllArgsConstructor:注解在類上,為類提供一個全參的構(gòu)造方法
????????@RequiredArgsConstructor:注解在類上,會生成構(gòu)造方法(可能帶參數(shù)也可能不帶參數(shù))。注意:@RequiredArgsConstructor如果帶參數(shù),這參數(shù)只能是以 final 修飾的未經(jīng)初始化的字段或者是以 @NonNull 注解的未經(jīng)初始化的字段。
2、@Data和@Builder的用法
?(1)@Data(單獨(dú)使用@Data注解,是會生成無參數(shù)構(gòu)造方法)。
????????@Data 是 Lombok 中的一個注解,它可以自動生成以下代碼:
- 所有字段的 get 和 set 方法。
- toString() 方法,用于將對象轉(zhuǎn)換成字符串形式,便于日志輸出和調(diào)試。
- ?hashCode() 方法,用于計算對象的哈希值。
- ?equals() 方法,用于判斷兩個對象是否相等。
- ?會生成一個無參構(gòu)造方法
?(2)@Builder(單獨(dú)使用@Builder注解,是會生成了全屬性的構(gòu)造方法)。
????????@Builder 是一種注解(annotation),在Java語言中使用。它是Project Lombok庫提供的一個注解,旨在簡化Java類的構(gòu)建過程。
????????當(dāng)你在一個類上使用@Builder注解時,Lombok會自動生成一個內(nèi)部靜態(tài)類(通常命名為Builder),用于創(chuàng)建該類的實例。該內(nèi)部類具有與外部類相同的字段,并且還提供了一些方法,用于設(shè)置這些字段的值。
例如:
3、idea中的使用的注意事項
(1)若是類中沒有定義參數(shù):@NoArgsConstructor和@AllArgsConstructor不能同時使用(只能使用其中一個)。例如:
①使用@NoArgsConstructor
②使用@AllArgsConstructor
(2)若是類中有定義參數(shù):@NoArgsConstructor和@AllArgsConstructor能同時使用(也能使用其中一個)。例如:
①同時使用
②單獨(dú)使用@NoArgsConstructor
③單獨(dú)使用@AllArgsConstructor
(3)加入了@Data或@Builder之后使用@AllArgsConstructor和@NoArgsConstructor的注意事項。
①@Data和@Builder都加入進(jìn)去后的使用:
- 兩個能共同使用
- 只能單獨(dú)使用@AllArgsConstructor(并且不能單獨(dú)使用@NoArgsConstructor)
②只加入了@Data進(jìn)去(有定義參數(shù)時)
- 兩個能共同使用
-
能單獨(dú)使用@AllArgsConstructor或@NoArgsConstructor
③只加入了@Data進(jìn)去(沒有定義參數(shù)時)
- 能單獨(dú)使用@AllArgsConstructor或@NoArgsConstructor(兩個不能同時使用)
④只加入了@Builder進(jìn)去(類中有參數(shù)時)
- 兩個能共同使用
??????????????
- 只能單獨(dú)使用@AllArgsConstructor(并且不能單獨(dú)使用@NoArgsConstructor)
??????????????
⑤只加入了@Builder進(jìn)去(類中無參數(shù)時)
- 只能單獨(dú)使用@AllArgsConstructor或@NoArgsConstructor(但@AllArgsConstructor和@NoArgsConstructor不能共同使用)
文章來源:http://www.zghlxwxcb.cn/news/detail-859152.html
???????文章來源地址http://www.zghlxwxcb.cn/news/detail-859152.html
到了這里,關(guān)于@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor的區(qū)別和@Data和@Builder的用法以及在idea中使用的注意事項的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!