butterknife 插件_知道这个插件,能让你的项目里少写1000行代码
在項目開發(fā)中,我們時常遇到需要創(chuàng)建實體類,一般的做法是: 先寫成員變量, 再提供get()、set()相對應(yīng)的方法,然后看是否需要提供toString等方法。這樣一來會發(fā)現(xiàn)每寫一個實體類的話就會有很多類似相同的操作,而且代碼量看起來也很多,不是很簡潔。當(dāng)然這些實體類我們也可以借助工具一鍵生成或是干脆直接用注解的形式,只有成員變量,沒有g(shù)et、set相關(guān)方法。
今天給大家推薦一個插件Lombok
1. Lombok簡介
官方介紹
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
大意是Lombok是一個Java庫,能自動插入編輯器并構(gòu)建工具,簡化Java開發(fā)。通過添加注解的方式,不需要為類編寫getter或eques方法,同時可以自動化日志變量。
簡而來說:Lombok能以簡單的注解形式來簡化java代碼,提高開發(fā)人員的開發(fā)效率。
2. Lombok使用
如何在IDEA上進行安裝Lombok:
首先點開File下的Settings,然后點Plugins,然后點擊下面的Browse repositories,然后在搜索框內(nèi)搜索lombok, 然后有個install按鈕進行安裝,安裝完后重啟下IDEA就好了。
安裝好了lombok,我們還需要把lombok依賴到我們項目。
添加maven依賴
org.projectlombok
lombok
1.18.4
provided
下面我們來嘗試下,使用lombok注解后,我們的實體類
@Data這個注解是lombok包下的一個注解,而這個注解是用在類上的
@Data
public class User {
private int userId;
private String userName;
}
這個注解其實是幫我們的類提供了get()、set()方法、equals()、hashCode()、toString() 這些方法。也就是說只要你的類上寫了這個注解,那就不需要再生成get、set、toString等方法了。類似我們在做Android開發(fā)的時候,看到一大堆FindViewById()很繁瑣的代碼,我們借助ButterKnife插件一樣。
常用注解
下面介紹一下常用的幾個注解:
@Setter 注解在類或字段,注解在類時為所有字段生成setter方法,注解在字段上時只為該字段生成setter方法。
@Getter 使用方法同上,區(qū)別在于生成的是getter方法。
@ToString 注解在類,添加toString方法。
@EqualsAndHashCode 注解在類,生成hashCode和equals方法。
@NoArgsConstructor 注解在類,生成無參的構(gòu)造方法。
@RequiredArgsConstructor 注解在類,為類中需要特殊處理的字段生成構(gòu)造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor 注解在類,生成包含類中所有字段的構(gòu)造方法。
@Data 注解在類,生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法。
@Slf4j 注解在類,生成log變量,嚴(yán)格意義來說是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);
Lombok這個插件,確實工作效率提高了不少。
Lombok的優(yōu)缺點
優(yōu)點:
通過注解的形式自動生成構(gòu)造器、getter/setter、equals、hashcode、toString等方法,提高了一定的開發(fā)效率
讓代碼變得簡潔,不用過多的去關(guān)注相應(yīng)的方法
屬性做修改時,也簡化了維護為這些屬性所生成的getter/setter方法等
對于缺點,官網(wǎng)提到了兩點,第一不支持多種參數(shù)構(gòu)造器的重載
第二,雖然省去了手動創(chuàng)建getter/setter方法的麻煩,但大大降低了源代碼的可讀性和完整性,降低了閱讀源代碼的舒適度。
對于第二點,我并不怎么認(rèn)同,實體類的set 和get 可讀性并不是很重要,誰又會去關(guān)注這些呢?
開源項目github地址:github.com/JourWon/test-lombok
總結(jié)
以上是生活随笔為你收集整理的butterknife 插件_知道这个插件,能让你的项目里少写1000行代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器怎么查看数据库文件,怎么查看服务器
- 下一篇: .net每隔几秒去请求接口 怎么做_C#