摘要:雖然有人可能會(huì)說里面都自帶自動(dòng)生成這些方法的功能,但是使用會(huì)使你的代碼看起來更加簡潔,寫起來也更加方便。使用不使用自動(dòng)生成方法使用不使用自動(dòng)生成無參數(shù)構(gòu)造函數(shù)。
一、lombok簡介
lombok是在學(xué)習(xí)過程中發(fā)現(xiàn)的一個(gè)非常好用的小工具,用了之后感覺的確很不錯(cuò),所以特此來推薦一下。
lombok的官方地址:https://projectlombok.org/
lombok的Github地址:https://github.com/rzwitserlo...
那么lombok到底是個(gè)什么呢,lombok是一個(gè)可以通過簡單的注解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 Java 代碼的工具,簡單來說,比如我們新建了一個(gè)類,然后在其中寫了幾個(gè)字段,然后通常情況下我們需要手動(dòng)去建立getter和setter方法啊,構(gòu)造函數(shù)啊之類的,lombok的作用就是為了省去我們手動(dòng)創(chuàng)建這些代碼的麻煩,它能夠在我們編譯源碼的時(shí)候自動(dòng)幫我們生成這些方法。
lombok能夠達(dá)到的效果就是在源碼中不需要寫一些通用的方法,但是在編譯生成的字節(jié)碼文件中會(huì)幫我們生成這些方法,這就是lombok的神奇作用。
雖然有人可能會(huì)說IDE里面都自帶自動(dòng)生成這些方法的功能,但是使用lombok會(huì)使你的代碼看起來更加簡潔,寫起來也更加方便。
二、lombok安裝
lombok的安裝跟一般引用jar包沒有什么區(qū)別,可以到官網(wǎng)上下載最新的jar包,然后導(dǎo)入到項(xiàng)目里面就好啦。
Maven添加依賴
org.projectlombok lombok 1.16.10
Intellij idea開發(fā)的話需要安裝Lombok plugin,同時(shí)設(shè)置 Setting -> Compiler -> Annotation Processors -> Enable annotation processing勾選。
三、lombok使用
lombok使用過程中主要是靠注解起作用的,官網(wǎng)上的文檔里面有所有的注解,這里不一一羅列,只說明其中幾個(gè)比較常用的。
@NonNull: 可以幫助我們避免空指針。
使用lombok:
import lombok.NonNull;
public class NonNullExample extends Something { private String name; public NonNullExample(@NonNull Person person) { super("Hello"); this.name = person.getName(); }
}
不使用lombok:
public class NonNullExample extends Something {
private String name; public NonNullExample(@NonNull Person person) { super("Hello"); if (person == null) { throw new NullPointerException("person"); } this.name = person.getName(); }
}
@Cleanup: 自動(dòng)幫我們調(diào)用close()方法。
使用lombok:
import lombok.Cleanup;
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException { @Cleanup InputStream in = new FileInputStream(args[0]); @Cleanup OutputStream out = new FileOutputStream(args[1]); byte[] b = new byte[10000]; while (true) { int r = in.read(b); if (r == -1) break; out.write(b, 0, r); } }
}
不使用lombok:
import java.io.*;
public class CleanupExample { public static void main(String[] args) throws IOException { InputStream in = new FileInputStream(args[0]); try { OutputStream out = new FileOutputStream(args[1]); try { byte[] b = new byte[10000]; while (true) { int r = in.read(b); if (r == -1) break; out.write(b, 0, r); } } finally { if (out != null) { out.close(); } } } finally { if (in != null) { in.close(); } } }
}
@Getter / @Setter: 自動(dòng)生成Getter/Setter方法
使用lombok:
import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; public class GetterSetterExample { @Getter @Setter private int age = 10; @Setter(AccessLevel.PROTECTED) private String name; }
不使用lombok:
public class GetterSetterExample {
private int age = 10; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } protected void setName(String name) { this.name = name; }
}
@NoArgsConstructor: 自動(dòng)生成無參數(shù)構(gòu)造函數(shù)。
@AllArgsConstructor: 自動(dòng)生成全參數(shù)構(gòu)造函數(shù)。
@Data: 自動(dòng)為所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,為非final字段添加@Setter,和@RequiredArgsConstructor!
還有其他一些比如自動(dòng)生成日志對象等等之類的注解可以到官方網(wǎng)站去了解,就不一一列舉了。
官方文檔https://projectlombok.org/fea...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67476.html
摘要:提高編碼效率使代碼更簡潔消除冗長代碼避免修改字段名字時(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介紹 近來偶遇一款擼碼神器,介紹給大家~相信許多小伙伴都深有體會(huì),POJO類中的千篇一律的getter/setter,construct...
摘要:使用,簡化代碼為了簡化與,提供了一種機(jī)制,幫助我們自動(dòng)生成這些樣板代碼。但是,在實(shí)際項(xiàng)目中,完全沒有使用到。源碼審查是一個(gè)源碼審查工具。最新版已經(jīng)支持的全部注解,不再認(rèn)為是沒有使用的變量。 一個(gè)典型的 Java 類 public class A { private int a; private String b; public int getA() { ret...
摘要:什么是一言以蔽之是一種工具,提供了簡單的注解來簡化我們的重復(fù)冗長代碼。但在實(shí)際的項(xiàng)目中,我們常常只在定義的時(shí)候用上,而在業(yè)務(wù)代碼中很少用到。總結(jié)是個(gè)非常有用的工具,能夠幫助我們精簡很多臃腫冗長的代碼,不過也有其局限性,推薦在定義中使用。 什么是Lombok 一言以蔽之:lombok是一種工具,提供了簡單的注解來簡化我們的重復(fù)冗長Java代碼。比如一個(gè)Java Bean,注解了lombo...
摘要:使用方法能以簡單的注解形式來簡化代碼,提高開發(fā)人員的開發(fā)效率。能通過注解的方式,在編譯時(shí)自動(dòng)為屬性生成構(gòu)造器方法。出現(xiàn)的神奇就是在源碼中沒有和方法,但是在編譯生成的字節(jié)碼文件中有和方法。沒法實(shí)現(xiàn)多種參數(shù)構(gòu)造器的重載。 1 Lombok背景介紹 官方介紹如下: Project Lombok makes java a spicier language by addi...
閱讀 1622·2019-08-30 13:18
閱讀 1599·2019-08-29 12:19
閱讀 2151·2019-08-26 13:57
閱讀 4171·2019-08-26 13:22
閱讀 1219·2019-08-26 10:35
閱讀 3017·2019-08-23 18:09
閱讀 2553·2019-08-23 17:19
閱讀 711·2019-08-23 17:18