日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

lombok有参构造注解_Java高效开发工具: Lombok

發布時間:2023/12/10 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lombok有参构造注解_Java高效开发工具: Lombok 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Lombok, 一個Java開發必備效率工具,可以大大避免編寫一些常用方法(get/set, hashcode等),簡化開發。雖然現在IDE很多都可以通過快捷鍵生成POJO的一些方法了,但是如果該POJO字段發生變動后,還是需要程序員再次手動重新生成相關方法。而Lombok只需要使用注解即可,且是在代碼編譯期間將注解替換為相應的代碼,而非通過反射。同時會使得源碼文件更簡潔

配置

IDEA環境下的的Lombok的配置:

1. 首先在Maven中添加Lombok包

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version></dependency>

2. 在IDEA的Plugins Marketplace 中搜索安裝 IntelliJ Lombok plugin 插件

POJO 方法

POJO類的很多方法get、set、equals、canEquals、hashCode、toString、Constructor 都可以通過Lombok的相關注解實現

@Data 注解

放置在類上,為該類的所有屬性添加get、set方法,為該類添加equals、canEquals、hashCode、toString方法。非常適用于POJO類。

示例源碼如下:

@Data class Pc1 implements Serializable {private static final long serialVersionUID = 1;private int id;private double prcie;private String pcname; }

編譯后class文件如下,可以看到提供了上述提到的所有方法,并且源碼依然很簡潔

Note:

如果無構造器方法,Java會提供一個默認的無參構造器。所以class文件中的那個無參構造器可不是Lombok的功勞哦~

@Getter, @Setter 注解

  • 放置在屬性上,為該屬性添加Get/Set方法

示例源碼如下:

class Pc2 implements Serializable {private static final long serialVersionUID = 1;private int id;@Setterprivate double prcie;@Getterprivate String pcname; }

編譯后class文件如下,可以看到字段上添加了相應的方法

  • 放置在類上,則為該類的所有屬性添加Get/Set方法

@EqualsAndHashCode 注解

放置在類上,為該類添加equals、canEqual、hashCode方法

示例源碼如下:

@EqualsAndHashCode class Pc5 implements Serializable {private static final long serialVersionUID = 1;private int id;private double prcie;private String pcname; }

編譯后class文件如下,該類添加了equals、canEqual、hashCode方法

@ToString 注解

放置在類上,為該類添加toString方法

示例源碼如下:

@ToString class Pc6 {private int id;private double price;private String pcname; }

編譯后class文件如下,該類添加了toString方法

構造器: @AllArgsConstructor 注解

放置在類上,為該類添加一個全參構造器。需要注意的是:由于此時已經有構造器了,Java不再提供無參構造器

示例源碼如下:

@AllArgsConstructor class Pc3 implements Serializable {private static final long serialVersionUID = 1;private int id;private double prcie;private String pcname; }

編譯后class文件如下,該類添加了一個全參構造器

構造器: @NoArgsConstructor 注解

放置在類上,為該類添加一個無參構造器

示例源碼如下:

@NoArgsConstructor class Pc4 implements Serializable {private static final long serialVersionUID = 1;private int id;private double prcie;private String pcname; }

編譯后class文件如下,該類添加了一個無參構造器

@NonNull

放置在屬性上,將對該屬性進行非空檢查,如果為空(null),將會拋出NullPointerException;同時為該類添加一個由所有@NonNull屬性組成的有參構造器。需要注意的是:由于此時已經有構造器了,Java不再提供無參構造器

示例代碼如下:

@Data class Pc7 {@NonNullprivate Integer id;private double price;private String pcname; }

編譯后class文件如下,該類中對id屬性的操作均進行了非空檢查,添加了一個所有@NonNull屬性組成(id屬性)的有參構造器

@RequiredArgsConstructor 注解 簡化依賴注入

通常我們在實現Spring依賴注入,常常是在需要注入的屬性添加@Autowired注解實現(如下所示)。但如果一個類下有很多屬性需要注入時,@Autowired就要寫一堆了……

...@Controllerpublic class Controller1{@Autowiredprivate Service1 service1;@Autowiredprivate Service2 service2;...}

這里可以使用這里@RequiredArgsConstructor注解來簡化依賴注入操作:首先需要將該注解放在類上,然后在 需要注入的屬性前添加final(用法1) 或 在需要注入的屬性上添加注解@NonNull(用法2)

對上述示例的改進寫法如下:

...@RequiredArgsConstructor(onConstructor = @__(@Autowired))@Controllerpublic class Controller1{// 用法 1private final Service1 service1;// 用法 2@NonNullprivate Service2 service2;...}

用法1 和 用法2 雖然效果一樣,但是很明顯用法1更常用……

log對象

@Log4j

放置在類上,為該類添加一個屬性名為log的Log4J日志對象

示例源碼如下:

@Log4jpublic class Student { private int id;private String username;private String sex;private String address;...}

編譯后的class文件如下,該類添加了一個屬性名為log的Log4J日志對象

@Slf4j

放置在類上,為該類添加一個屬性名為log的SLF4J日志對象

示例源碼如下:

import lombok.extern.slf4j.Slf4j;@Slf4jpublic class User {private int id;private String name;private int age;public int getAge() {log.error("SLF4J getAge: " + age );log.debug("SLF4J getAge: " + age );return age;}...}

編譯后的class文件如下,該類添加了一個屬性名為log的SLF4J日志對象

總結

以上是生活随笔為你收集整理的lombok有参构造注解_Java高效开发工具: Lombok的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 熟女肥臀白浆大屁股一区二区 | 国产成人a v| 亚洲精品偷拍 | 国产精品99无码一区二区视频 | 国产高清在线不卡 | 日韩欧美中文字幕在线视频 | 国产情侣av在线 | 国产主播第一页 | 欧美丰满老妇性猛交 | 91成人免费在线视频 | av大全免费 | 夜夜添无码一区二区三区 | 91午夜精品 | 成年人在线免费观看 | 欧美性生活一级 | 熟妇人妻精品一区二区三区视频 | 久久99热这里只有精品 | 亚洲av无码一区二区三区网站 | 国产精品第9页 | 欧美野外猛男的大粗鳮 | 蜜臀视频在线观看 | wwwxxxx日本 | 五月天激情啪啪 | 欧美日韩中文字幕 | 色网址在线观看 | 国产精品黑人一区二区三区 | 久久久久久人妻一区二区三区 | 香蕉视频网站入口 | 成年人三级视频 | 香蕉小视频 | 日本精品久久久久久 | 夜色综合 | 久久发布国产伦子伦精品 | 熟女俱乐部一区二区 | 精品美女 | 国产乱码精品一品二品 | 黑人操白妞 | 久久综合资源 | 婷婷网址 | 欧美日韩亚洲一区二区三区 | 奇米精品一区二区三区四区 | 亚洲精品国产欧美 | 国产一区二区精华 | 中字幕一区二区三区乱码 | 丁香六月婷婷激情 | 性做久久久久久久久久 | 亚洲精品日产精品乱码不卡 | 免费成人在线视频观看 | 一区二区三区四区视频 | 天堂av2020 | 欧美一区二区久久久 | 久久综合激情网 | 亚洲性激情 | www.国产精品视频 | 美女视频黄色免费 | 亚洲AV成人无码电影在线观看 | 91插插插插插插插插 | 欧美绿帽合集videosex | 欧美成人看片黄a免费看 | 五月天丁香网 | 中文字幕+乱码+中文乱 | 日韩美女国产精品 | 亚欧美一区二区三区 | 黑人巨大精品欧美一区免费视频 | 欧美一区2区三区4区公司 | 久草免费在线视频 | a天堂资源在线 | 亚洲精品视频一区二区三区 | 日本一二三区视频在线 | 99精品久久久久久久 | 国产精品久久久久久亚洲av | 强辱丰满人妻hd中文字幕 | 亚洲两性 | 九色porny自拍视频 | 精品国产一区二区三区久久狼黑人 | 日韩www在线观看 | 青娱乐极品视频在线 | 婷婷天堂网 | av手机天堂网| 人妻少妇被粗大爽9797pw | 午夜精品一区二区三区三上悠亚 | 男人的天堂99 | 成人性生交大片免费卡看 | 欧美xxxxx少妇 | 成年人的免费视频 | 99久久人妻精品免费二区 | 高清国产一区二区三区四区五区 | 麻豆网站入口 | 四虎成人免费视频 | 中文字幕有码视频 | 黄色录像网址 | 欧美福利视频一区二区 | 十八禁一区二区三区 | 久久久久久在线观看 | a天堂中文在线观看 | 日本天堂在线观看 | 一区二区三区 中文字幕 | 国产伦精品一区二区三区视频孕妇 | 婷婷影院在线观看 |