摘要:雖然有人可能會說里面都自帶自動生成這些方法的功能,但是使用會使你的代碼看起來更加簡潔,寫起來也更加方便。使用不使用自動生成方法使用不使用自動生成無參數構造函數。
一、lombok簡介
lombok是在學習過程中發現的一個非常好用的小工具,用了之后感覺的確很不錯,所以特此來推薦一下。
lombok的官方地址:https://projectlombok.org/
lombok的Github地址:https://github.com/rzwitserlo...
那么lombok到底是個什么呢,lombok是一個可以通過簡單的注解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 Java 代碼的工具,簡單來說,比如我們新建了一個類,然后在其中寫了幾個字段,然后通常情況下我們需要手動去建立getter和setter方法啊,構造函數啊之類的,lombok的作用就是為了省去我們手動創建這些代碼的麻煩,它能夠在我們編譯源碼的時候自動幫我們生成這些方法。
lombok能夠達到的效果就是在源碼中不需要寫一些通用的方法,但是在編譯生成的字節碼文件中會幫我們生成這些方法,這就是lombok的神奇作用。
雖然有人可能會說IDE里面都自帶自動生成這些方法的功能,但是使用lombok會使你的代碼看起來更加簡潔,寫起來也更加方便。
二、lombok安裝
lombok的安裝跟一般引用jar包沒有什么區別,可以到官網上下載最新的jar包,然后導入到項目里面就好啦。
Maven添加依賴
org.projectlombok lombok 1.16.10
Intellij idea開發的話需要安裝Lombok plugin,同時設置 Setting -> Compiler -> Annotation Processors -> Enable annotation processing勾選。
三、lombok使用
lombok使用過程中主要是靠注解起作用的,官網上的文檔里面有所有的注解,這里不一一羅列,只說明其中幾個比較常用的。
@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: 自動幫我們調用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: 自動生成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: 自動生成無參數構造函數。
@AllArgsConstructor: 自動生成全參數構造函數。
@Data: 自動為所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,為非final字段添加@Setter,和@RequiredArgsConstructor!
還有其他一些比如自動生成日志對象等等之類的注解可以到官方網站去了解,就不一一列舉了。
官方文檔https://projectlombok.org/fea...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67476.html
摘要:提高編碼效率使代碼更簡潔消除冗長代碼避免修改字段名字時忘記修改方法名提高下逼格以上就是的優點,當然,的優點遠遠不止以上幾點,使用,你可以更加優雅高效的編輯代碼。實戰完成了上述準備之后,就可以愉快的使用進行編碼了。接下來是使用簡化后的代碼。 Lombok介紹 近來偶遇一款擼碼神器,介紹給大家~相信許多小伙伴都深有體會,POJO類中的千篇一律的getter/setter,construct...
摘要:使用,簡化代碼為了簡化與,提供了一種機制,幫助我們自動生成這些樣板代碼。但是,在實際項目中,完全沒有使用到。源碼審查是一個源碼審查工具。最新版已經支持的全部注解,不再認為是沒有使用的變量。 一個典型的 Java 類 public class A { private int a; private String b; public int getA() { ret...
摘要:什么是一言以蔽之是一種工具,提供了簡單的注解來簡化我們的重復冗長代碼。但在實際的項目中,我們常常只在定義的時候用上,而在業務代碼中很少用到。總結是個非常有用的工具,能夠幫助我們精簡很多臃腫冗長的代碼,不過也有其局限性,推薦在定義中使用。 什么是Lombok 一言以蔽之:lombok是一種工具,提供了簡單的注解來簡化我們的重復冗長Java代碼。比如一個Java Bean,注解了lombo...
摘要:使用方法能以簡單的注解形式來簡化代碼,提高開發人員的開發效率。能通過注解的方式,在編譯時自動為屬性生成構造器方法。出現的神奇就是在源碼中沒有和方法,但是在編譯生成的字節碼文件中有和方法。沒法實現多種參數構造器的重載。 1 Lombok背景介紹 官方介紹如下: Project Lombok makes java a spicier language by addi...
閱讀 1594·2019-08-30 13:18
閱讀 1582·2019-08-29 12:19
閱讀 2122·2019-08-26 13:57
閱讀 4147·2019-08-26 13:22
閱讀 1190·2019-08-26 10:35
閱讀 2995·2019-08-23 18:09
閱讀 2508·2019-08-23 17:19
閱讀 685·2019-08-23 17:18