1. 程式人生 > >使用Lombok簡化你的程式碼

使用Lombok簡化你的程式碼

一、安裝

  • eclipse

        

       重啟eclipse/myeclipse

        如果有報錯,clean一下專案就ok了。

  • intellij

      安裝lombok外掛即可
      setting→plugins→搜lombok→安裝(需要重啟)

      

      重啟intelliJ

二、Lombok用法

註解說明
  • val:用在區域性變數前面,相當於將變數宣告為final
  • @NonNull:給方法引數增加這個註解會自動在方法內對該引數進行是否為空的校驗,如果為空,則丟擲NPE(NullPointerException)
  • @Cleanup:自動管理資源,用在區域性變數之前,在當前變數範圍內即將執行完畢退出之前會自動清理資源,自動生成try-finally這樣的程式碼來關閉流
  • @Getter/@Setter:用在屬性上,再也不用自己手寫setter和getter方法了,還可以指定訪問範圍
  • @ToString:用在類上,可以自動覆寫toString方法,當然還可以加其他引數,例如@ToString(exclude=”id”)排除id屬性,或者@ToString(callSuper=true, includeFieldNames=true)呼叫父類的toString方法,包含所有屬性
  • @EqualsAndHashCode
    :用在類上,自動生成equals方法和hashCode方法
  • @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:用在類上,自動生成無參構造和使用所有引數的建構函式以及把所有@NonNull屬性作為引數的建構函式,如果指定staticName = “of”引數,同時還會生成一個返回類物件的靜態工廠方法,比使用建構函式方便很多
  • @Data:註解在類上,相當於同時使用了@ToString@EqualsAndHashCode@Getter@Setter@RequiredArgsConstrutor這些註解,對於POJO類
    十分有用
  • @Value:用在類上,是@Data的不可變形式,相當於為屬性新增final宣告,只提供getter方法,而不提供setter方法
  • @Builder:用在類、構造器、方法上,為你提供複雜的builder APIs,讓你可以像如下方式一樣呼叫Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();更多說明參考Builder
  • @SneakyThrows:自動拋受檢異常,而無需顯式在方法上使用throws語句
  • @Synchronized:用在方法上,將方法宣告為同步的,並自動加鎖,而鎖物件是一個私有的屬性$lock$LOCK,而java中的synchronized關鍵字鎖物件是this,鎖在this或者自己的類物件上存在副作用,就是你不能阻止非受控程式碼去鎖this或者類物件,這可能會導致競爭條件或者其它執行緒錯誤
  • @Getter(lazy=true):可以替代經典的Double Check Lock樣板程式碼
  • @Log:根據不同的註解生成不同型別的log物件,但是例項名稱都是log,有六種可選實現類
    • @CommonsLog Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
    • @Log Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName());
    • @Log4j Creates log = org.apache.log4j.Logger.getLogger(LogExample.class);
    • @Log4j2 Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
    • @Slf4j Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
    • @XSlf4j Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

三、程式碼示例

  • val
  • val示例

    2345678910public static void main(String[] args) {val sets = new HashSet<String>();val lists = new ArrayList<String>();val maps = new HashMap<String, String>();//=>相當於如下final Set<String> sets2 = new HashSet<>();final List<String> lists2 = new ArrayList<>();final Map<String, String> maps2 = new HashMap<>();}
  • @NonNull示例

2 3 4 public void notNullExample(@NonNull String string) { string.length(); }
2 3 4 5 6 7 8 9

相關推薦

使用Lombok簡化程式碼

一、安裝 eclipse                 重啟eclipse/myeclipse         如果有報錯,clean一下專案就ok了。 intellij       安裝lombok外掛即可       s

使用Lombok簡化的代碼

ima equal .com targe alt pro lsa data 技術分享 http://www.cnblogs.com/ywqbj/p/5711691.html mavem    <dependency> <groupId>or

lombok 簡化 Java 程式碼

title: lombok 簡化 Java 程式碼 date: 2018-10-20 20:32:19 tags: lombok author :辰砂tj 1.介紹 Lombok 是一種 Java 實用工具,可用來幫助開發人員消除 Java 的冗長,尤其是對於簡單的 Java 物件(POJO)。它

Lombok -- 簡化的Java編碼 (JDK6+)

最近同事推薦了一款非常好用的Java庫,讓我非常恨自己對好東西的關注不夠,也感嘆牛人多,Java世界的開源好東西多。這裡把它推薦給大家:Lombok。 Lombok是用來簡化Java程式碼的編寫,那麼就需要IDE和編譯器(Maven)支援Lombok。先說說具體怎麼用:

簡化的Java程式碼,讓工作更高效|語言

計算機專家在問題求解時非常重視表示式簡潔性的價值。Unix的先驅者Ken Thompson曾經說過非常著名的一句話:“丟棄1000行程式碼的那一天是我最有成效的一天之一。”這對於任何一個需要持續支援和維護的軟體專案來說,都是一個當之無愧的目標。早期的Lisp貢獻

用webpack的require.context() 簡化程式碼

隨著我們的專案越來越大,平時的常見用操作就會覺得很‘麻煩’了,比如每次要新增新的路由, vuex裡面新增新的module等 { name: 'moduleN', component ModuleN, path: '/moduleN', } 麻煩嗎?談不上吧,畢竟我們之前一直都

Lombok簡化java程式碼

Lombok學習筆記 應用: 其實呢,這個jar在現在已經不太常用了,java屬於大語言,一個好用的IDE是很有必要的,而對於一個儲存資料的實體類,各種IDE都有了很多自動生成程式碼的方法,但是呢,Lombok還是有很多IDE不包括的方法,而且一兩句註解

第 5 篇:用檢視集,簡化程式碼

![](https://img2020.cnblogs.com/blog/759200/202004/759200-20200415161158343-1662112908.jpg) 作者:[HelloGitHub-追夢人物](https://www.zmrenwu.com) 在 RESTful 架構中

[譯]使用Command模式和MediatR簡化的控制器

解決方案 iat att 控制 -c tab git 返回 https 原文 你希望保持你的controller足夠簡單。 你的controller越來越臃腫,你聽說command模式是一個給controller瘦身的解決方案。 但是你不知道command模式是否適合你的應

springboot+maven 集成lombok簡化代碼

path 電腦 set end png 添加 project pri alt 請先到官網下載lombok:https://projectlombok.org/ 我見官網上說是直接雙擊jar包就可以自動掃描eclipse安裝目錄,但是我電腦上還有Myeclipse 就不行 所

使用阿裏雲ACM簡化的Spring Cloud微服務環境配置管理

局限 cto 2.7 修改 開發者 簡單 blink iterable beans 摘要: 本文我們就如何使用阿裏雲ACM這樣的配置管理產品在Spring Cloud中替代Spring Cloud Config幫助簡化環境配置管理做一個簡單的示例,幫助你理解基於ACM來簡化

簡化的Java代碼,讓工作更高效|語言

案例 生物信息 否則 規模 平臺 使用 values apt map 計算機專家在問題求解時非常重視表達式簡潔性的價值。Unix的先驅者Ken Thompson曾經說過非常著名的一句話:“丟棄1000行代碼的那一天是我最有成效的一天之一。”這對於任何一個需要持續支持和維護的

用bat檔案簡化的python操作

批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT或者CMD。這些命令統稱批處理命令。小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過程。本文不涉及批處理語法,只是提供幾個簡單實用的批處理檔案。 為什麼使用批處理,

程式碼實現搶紅包功能

一.場景帶入搶紅包在現實場景中經常見到,你知道如何通過程式碼來實現嗎?一種通常的思路是,一定金額的紅包,只要有人過來搶,就在剩餘數額內給他分配金額,直到所有錢都分陪完。但是這樣有一個問題,最先搶的人,搶到錢多的概率會更大。比如有10塊錢,有甲乙丙三個人按順序搶,甲開始搶,這時

(轉)35 個毀掉程式碼的不良習慣 !

作者|Christian Maioli M翻譯|Viyi, leoxu, stevobm來源 | https://www.oschina.net/ 壞習慣很難改變,如果你不知道你的壞習慣正在影響工作,那就更難。如果你知道,但不在乎——這是最糟糕的情況。但好在你已經來這

簡化測試程式碼

#include "stdafx.h" #include <gtest/gtest.h> #include <fstream> #include <math.h> #include <algorithm> #include <iostre

AOP實踐--ASP.NET MVC 5使用Filter過濾Action引數防止sql注入,讓程式碼安全簡潔

在開發程式的過程中,稍微不注意就會隱含有sql注入的危險。今天我就來說下,ASP.NET mvc 5使用Filter過濾Action引數防止sql注入,讓你程式碼安全簡潔。不用每下地方對引數的值都進行檢查,看是使用者輸入的內容是否有危險的sql。如果沒個地方都要加有幾個缺

這幾個程式設計小技巧,讓程式碼效率提高一個檔次

轉載自程式人生公眾號 2018/9/3 for迴圈 1.for迴圈變數初始化 在c語言中,我們常常這樣使用for語句: for (int i = 0; i < strlen(s); i++) 這看起來似乎很完美,程式碼也很漂亮,讓我們再看看另一種寫法: fo

基於MVC4+EasyUI的Web開發框架經驗總結(11)--使用Bundles處理簡化頁面程式碼

在Web開發的時候,我們很多時候,需要引用很多CSS檔案、JS檔案,隨著使用更多的外掛或者獨立樣式檔案,可能我們的Web介面程式碼會越來越臃腫,看起來也很累贅,在MVC裡面提供了一個Bundle的物件,用來簡化頁面程式碼非常方便,本文主要介紹在我的MVC框架裡面,如何使用bundles來簡化頁面的程式碼的。

簡化的 java 字串操作:Guava 之 CharMatcher 用法簡介

對字串的處理應該是程式設計活動中最頻繁的操作了,而原生的 JDK 以及 Java 本身的語法特性使得在 Java 中進行字串操作是一件極其麻煩的事情,如果你熟悉 Shell/Awk/Sed/Perl/Python 等指令碼語言,你就大概能明白我說的啥意思了。 上次在這篇 使