LomBok教程v0.1

LomBok教程v0.1

lombok是一個幫助JAVA開發(fā)者快速的完成機械性運動編碼的重復(fù)性工作的替代品黑忱,他幫助用戶完成了過去需要右鍵或者敲打才能填寫補充的get,set,toString等常用的屬性方法绰疤,構(gòu)造器這種沒有技術(shù)含量的工作!
整理者:sulwan

相關(guān)知識

equals() 的作用是 用來判斷兩個對象是否相等
==: 它的作用是判斷兩個對象的地址是不是相等
hashCode() 的作用是獲取哈希碼鲜棠,也稱為散列碼;它實際上是返回一個int整數(shù)望薄。這個哈希碼的作用是確定該對象在哈希表中的索引位置槽驶。

更多了解請看:

https://www.cnblogs.com/skywang12345/p/3324958.html
https://zhuanlan.zhihu.com/p/32779910

安裝LomBok

Lombok安裝分為項目安裝,以及編輯器安裝兩部分:

①編輯器安裝

? eclipse:
? 下載插件(https://projectlombok.org/download)蚯瞧,保存于eclipse目錄,并在eclipse.ini文件最末端添加:

    -javaagent:lombok.jar

    -Xbootclasspath/a:lombok.jar

重啟eclipse嘿期,即完成安裝。

? idea:

? 可以在線安裝lombok的插件
? settings -> plugins -> 在搜索框輸入lombok -> 安裝

②項目安裝

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

LomBok常用API

@Setter

注解在類或字段埋合,注解在類時為所有字段生成setter方法备徐,注解在字段上時只為該字段生成setter方法。

@Setter
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    public Sulwan(){
    }
    public Long setId(Long id){
        this.id = id;
    }
    
}

@Getter

使用方法同上甚颂,區(qū)別在于生成的是getter方法蜜猾。

@Getter
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    public Sulwan(){
    }
    public Long getId(){
        return this.id;
    }
    
}

@ToString

注解在類,添加toString方法振诬。

@ToString
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    public String toString(){
        .........
    }
    
}

@EqualsAndHashCode

注解在類蹭睡,生成hashCode和equals方法。

@EqualsAndHashCode
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    public int hashCode() {
        .........
    }

    public boolean equals(Object obj) {
        .........
    }
    
}

@NoArgsConstructor

注解在類赶么,生成無參的構(gòu)造方法肩豁。

@NoArgsConstructor
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    public Sulwan(){
    }
}

@RequiredArgsConstructor

注解在類,為類中需要特殊處理的字段生成構(gòu)造方法辫呻,比如final和被@NonNull注解的字段清钥。

正如文字介紹那樣,就是專門給這倆個情況生成構(gòu)造函數(shù)的印屁,哥們我沒用過循捺,感覺建議不要用!

@AllArgsConstructor

注解在類雄人,生成包含類中所有字段的構(gòu)造方法从橘。特別要注意,不在生成默認構(gòu)造

@NoArgsConstructor
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    @ConstructorProperties({"id"})
    public Sulwan(Long id){
        this.id = id
    }
}

@Data

注解在類础钠,生成setter/getter恰力、equals、canEqual旗吁、hashCode踩萎、toString方法,如為final屬性很钓,則不會為該屬性生成setter方法香府。

@Data
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    public Sulwan(){
    }
    public Long getId(){
        return this.id;
    }
    public Long setId(Long id){
        this.id = id;
    }
   
    public int hashCode() {
        .........
    }

    public boolean equals(Object obj) {
        .........
    }
    
    public String toString(){
        .........
    }
    
}

@Slf4j

注解在類董栽,生成log變量,嚴格意義來說是常量企孩。
private static final Logger log = LoggerFactory.getLogger(sulwanController.class);

?@Log4j

注解在類上锭碳;為類提供一個 屬性名為log 的 log4j 日志對像 和上邊的一樣

@Log4j
public class Sulwan{
    private Long id;
}

public class Sulwan{
    private Long id;
    private static final Logger log =  LoggerFactory.getLogger(Sulwan.class)
    public Sulwan(){
    }
    
}

?@NonNull

注解在 屬性 上,會自動產(chǎn)生一個關(guān)于此參數(shù)的非空檢查勿璃,如果參數(shù)為空擒抛,則拋出一個空指針異常,也會有一個默認的無參構(gòu)造方法

public class Sulwan{
    @NonNull
    private Long id;
}

public class Sulwan{
    @NonNull
    private Long id;
}

?@Cleanup

這個注解用在 變量 前面补疑,可以保證此變量代表的資源會被自動關(guān)閉歧沪,默認是調(diào)用資源的 close() 方法,如果該資源有其它關(guān)閉方法莲组,可使用@Cleanup(“methodName”) 來指定要調(diào)用的方法诊胞,也會生成默認的構(gòu)造方法。

在類中引用其他類的前邊增加這個注解锹杈,就會在使用完畢后finally關(guān)閉這個厢钧,他是附著在try

?@Value

這個注解用在 上,會生成含所有參數(shù)的構(gòu)造方法嬉橙,get 方法,此外還提供了equals寥假、hashCode市框、toString方法。

這個個人觀點就是Data注解的別名糕韧,以后知道區(qū)別在使用

?@SneakyThrows

這個注解用在 方法 上枫振,可以將方法中的代碼用 try-catch 語句包裹起來,捕獲異常并在 catch 中用 Lombok.sneakyThrow(e) 把異常拋出萤彩,可以使用 @SneakyThrows(Exception.class) 的形式指定拋出哪種異常粪滤,也會生成默認的構(gòu)造方法。

注解在那個方法雀扶,其實就是給那個方法的方法體增加了一個指定異常try....catch

?@Synchronized

這個注解用在 類方法 或者 實例方法 上杖小,效果和 synchronized 關(guān)鍵字相同,區(qū)別在于鎖對象不同愚墓,對于類方法和實例方法予权,synchronized 關(guān)鍵字的鎖對象分別是類的 class 對象和 this 對象,而 @Synchronized 的鎖對象分別是 私有靜態(tài) final 對象 lock私有 final 對象 lock浪册,當然扫腺,也可以自己指定鎖對象,此外也提供默認的構(gòu)造方法村象。

防止多線程的鎖笆环?攒至??以后使用多了在完成
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末躁劣,一起剝皮案震驚了整個濱河市迫吐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌习绢,老刑警劉巖渠抹,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異闪萄,居然都是意外死亡梧却,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門败去,熙熙樓的掌柜王于貴愁眉苦臉地迎上來放航,“玉大人,你說我怎么就攤上這事圆裕」泖ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵吓妆,是天一觀的道長赊时。 經(jīng)常有香客問我,道長行拢,這世上最難降的妖魔是什么祖秒? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮舟奠,結(jié)果婚禮上竭缝,老公的妹妹穿的比我還像新娘。我一直安慰自己沼瘫,他們只是感情好抬纸,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耿戚,像睡著了一般湿故。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溅话,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天晓锻,我揣著相機與錄音,去河邊找鬼飞几。 笑死砚哆,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躁锁,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼纷铣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了战转?” 一聲冷哼從身側(cè)響起搜立,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎槐秧,沒想到半個月后啄踊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡刁标,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年颠通,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膀懈。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡顿锰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出启搂,到底是詐尸還是另有隱情硼控,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布胳赌,位于F島的核電站牢撼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疑苫。R本人自食惡果不足惜浪默,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缀匕。 院中可真熱鬧,春花似錦碰逸、人聲如沸乡小。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽满钟。三九已至,卻和暖如春胳喷,著一層夾襖步出監(jiān)牢的瞬間湃番,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工吭露, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吠撮,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓讲竿,卻偏偏與公主長得像泥兰,于是被迫代替她去往敵國和親弄屡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容