一言以蔽之:lombok是一種工具,提供了簡單的註解來簡化咱們的重複冗長Java代碼。
好比一個Java Bean,註解了lombok的@Data:html
@Data public class NormalBean { private String name; }
等價於如下代碼,Getter/Setter,toString,equals和hashCode方法會在編譯時自動生成。java
public class NormalBean { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; NormalBean that = (NormalBean) o; return name != null ? name.equals(that.name) : that.name == null; } @Override public int hashCode() { return name != null ? name.hashCode() : 0; } @Override public String toString() { return "NormalBean{" + "name='" + name + '\'' + '}'; } }
lombok的官網,官網上有比較詳細的文檔。eclipse
lombok不只要在項目中添加jar包,也要經過插件的形式開啓IDE的支持。若是你的項目是maven構建的,那麼須要在pom.xml中添加如下依賴:maven
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>
這裏推薦使用bom的形式管理pom依賴。好比Spring io platform裏就包含了lombok的dependencyManagement。ide
在idea下lombok的安裝比較簡單,在plugin裏面安裝lombok plugin
便可工具
將lombok.jar 複製到 eclipse.ini所在文件夾的根目錄ui
編輯 eclipse.ini ,在末尾加入:this
-Xbootclasspath/a:lombok.jar -javaagent:lombok.jar
重啓編碼
其餘的IDE添加lombok支持請看這裏idea
lombok包含了不少註解,若是所有用上,的確能夠精簡不少的代碼。但在實際的項目中,咱們經常只在定義Java Bean的時候用上lombok,而在業務代碼中不多用到。由於lombok雖然能精簡代碼,但缺點也很是明顯:
下降代碼的可讀性
調試困難
大部分狀況下,咱們都應該將代碼的可讀性放在編碼要考慮因素的首位,如下這幾個是我以爲最經常使用的幾個lombok註解:
@Log和一系列相關注解(如@Log4j,@Slf4j)是我最喜歡的註解,不用寫一堆的getLogger。還有@Builder也很方便,應付簡單的Builder模式足以。
lombok是個很是有用的工具,可以幫助咱們精簡不少臃腫冗長的代碼,不過也有其侷限性,推薦在定義Java Bean中使用。