摘要:使用可以大大減少代碼行數(shù),提高開發(fā)效率。提供了日志工具無參構(gòu)造器提供方法提供方法方法有參構(gòu)造器,參數(shù)按屬性定義順序傳入提供了空指針檢測,會拋出異常
lombok 是一個(gè)第三方工具,提供了一些注解功能,可以幫助我們消除冗余、臃腫的 Java 代碼,比如 POJO 的 getter/setter 方法、構(gòu)造方法、hashcode 方法等。lombok 在編譯時(shí)根據(jù)注解生成具體的代碼,在虛擬機(jī)中運(yùn)行時(shí)與直接定義的屬性和方法并沒有什么不同。使用 lombok 可以大大減少 Java 代碼行數(shù),提高開發(fā)效率。
安裝
需要在 IDE 中安裝 lombok 插件,才能在 IDE 中正常使用 lombok 生成的方法。以 Idea 為例,在 Settings -> Plugins 中搜索 lombok,即可安裝插件,然后重啟 Idea 使插件生效。
在項(xiàng)目的 pom.xml 文件中,需要引入 lombok 插件和 maven 依賴。
org.projectlombok lombok-maven-plugin 1.16.8.0 generate-sources delombok org.projectlombok lombok 1.14.4
常用注解
lombok 提供了很多注解,常用的如下。
@Getter:注解在屬性上,提供 getter 方法;
@Setter:注解在屬性上,提供 setter 方法;
@AllArgsConstructor:注解在類上,提供構(gòu)造方法,參數(shù)為所有屬性;
@NoArgsConstructor:注解在類上,提供無參構(gòu)造方法;
@Data:注解在類上,提供所有屬性的 getter 方法、setter 方法以及 equals、hashCode、toString 等方法;
@Log:注解在類上,提供一個(gè)名為 log 的屬性,類型為 java.util.logging.Logger,也可使用 @Log4j、@Log4j2、@Slf4j 等其他注解;
@ToString:注解在類上,提供 toString 方法;
@EqualsAndHashCode:注解在類上,提供 equals、hashCode 方法;
@Synchronized:注解在方法上,提供 synchronized,可以指定鎖的名稱;
@NonNull:注解在方法參數(shù)上,提供對參數(shù)的校驗(yàn),防止空指針異常;
@Cleanup:注解在局部變量上,提供對資源的關(guān)閉,即調(diào)用 close 方法;
使用示例
在下面的示例中,我們使用注解生成了無參構(gòu)造器、有參構(gòu)造器、 getter/setter 方法、hashcode 方法、equals 方法、toString 方法,生成了一個(gè) slf4j 的日志工具 log,在 test 方法中生成了對于參數(shù) msg 的空指針校驗(yàn)。有了 lombok,Java 代碼變得非常簡潔。
@Data @Slf4j @AllArgsConstructor @NoArgsConstructor public class LombokTest { @Getter @Setter private String name; private int age; public void test(@NonNull String msg){ log.info(msg);//lombok 提供了 slf4J 日志工具 } public static void main(String[] args){ LombokTest test = new LombokTest();//無參構(gòu)造器 test.setAge(17);//@Data 提供set方法 test.setName("Lucy");//@Setter 提供set方法 System.out.println(test.getName());//get方法 //有參構(gòu)造器,參數(shù)按屬性定義順序傳入 LombokTest lombokTest = new LombokTest("hanmeimei",15); //lombok 提供了空指針檢測,會拋出異常 lombokTest.test(null); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70431.html
摘要:使用,簡化代碼為了簡化與,提供了一種機(jī)制,幫助我們自動生成這些樣板代碼。但是,在實(shí)際項(xiàng)目中,完全沒有使用到。源碼審查是一個(gè)源碼審查工具。最新版已經(jīng)支持的全部注解,不再認(rèn)為是沒有使用的變量。 一個(gè)典型的 Java 類 public class A { private int a; private String b; public int getA() { ret...
摘要:可標(biāo)注在類內(nèi)部生成一個(gè)名為類名的內(nèi)部類,用于快速構(gòu)建。流程是這樣的編譯源代碼,并生成語法樹尋找實(shí)現(xiàn)了的代碼,并調(diào)用。尋找被標(biāo)注了注解的類,修改生成的語法樹。將語法樹生成為字節(jié)碼就到這里了它還具備很多好用的功能,你可以去這里看看。 能做什么? 在使用lombok之前: public class Book { private Integer id; private St...
摘要:使用方法能以簡單的注解形式來簡化代碼,提高開發(fā)人員的開發(fā)效率。能通過注解的方式,在編譯時(shí)自動為屬性生成構(gòu)造器方法。出現(xiàn)的神奇就是在源碼中沒有和方法,但是在編譯生成的字節(jié)碼文件中有和方法。沒法實(shí)現(xiàn)多種參數(shù)構(gòu)造器的重載。 1 Lombok背景介紹 官方介紹如下: Project Lombok makes java a spicier language by addi...
摘要:提高編碼效率使代碼更簡潔消除冗長代碼避免修改字段名字時(shí)忘記修改方法名提高下逼格以上就是的優(yōu)點(diǎn),當(dāng)然,的優(yōu)點(diǎn)遠(yuǎn)遠(yuǎn)不止以上幾點(diǎn),使用,你可以更加優(yōu)雅高效的編輯代碼。實(shí)戰(zhàn)完成了上述準(zhǔn)備之后,就可以愉快的使用進(jìn)行編碼了。接下來是使用簡化后的代碼。 Lombok介紹 近來偶遇一款擼碼神器,介紹給大家~相信許多小伙伴都深有體會,POJO類中的千篇一律的getter/setter,construct...
摘要:什么是一言以蔽之是一種工具,提供了簡單的注解來簡化我們的重復(fù)冗長代碼。但在實(shí)際的項(xiàng)目中,我們常常只在定義的時(shí)候用上,而在業(yè)務(wù)代碼中很少用到??偨Y(jié)是個(gè)非常有用的工具,能夠幫助我們精簡很多臃腫冗長的代碼,不過也有其局限性,推薦在定義中使用。 什么是Lombok 一言以蔽之:lombok是一種工具,提供了簡單的注解來簡化我們的重復(fù)冗長Java代碼。比如一個(gè)Java Bean,注解了lombo...
閱讀 663·2021-11-15 11:39
閱讀 2901·2021-10-08 10:04
閱讀 3264·2019-08-30 10:57
閱讀 3024·2019-08-26 13:25
閱讀 1907·2019-08-26 12:14
閱讀 2636·2019-08-23 15:27
閱讀 2996·2019-08-23 15:18
閱讀 1777·2019-08-23 14:26