成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用 lombok 簡化 Java 代碼

CloudwiseAPM / 3055人閱讀

摘要:使用可以大大減少代碼行數(shù),提高開發(fā)效率。提供了日志工具無參構(gòu)造器提供方法提供方法方法有參構(gòu)造器,參數(shù)按屬性定義順序傳入提供了空指針檢測,會拋出異常

lombok 是一個(gè)第三方工具,提供了一些注解功能,可以幫助我們消除冗余、臃腫的 Java 代碼,比如 POJO 的 getter/setter 方法、構(gòu)造方法、hashcode 方法等。lombok 在編譯時(shí)根據(jù)注解生成具體的代碼,在虛擬機(jī)中運(yùn)行時(shí)與直接定義的屬性和方法并沒有什么不同。使用 lombok 可以大大減少 Java 代碼行數(shù),提高開發(fā)效率。

安裝

需要在 IDE 中安裝 lombok 插件,才能在 IDE 中正常使用 lombok 生成的方法。以 Idea 為例,在 Settings -> Plugins 中搜索 lombok,即可安裝插件,然后重啟 Idea 使插件生效。

在項(xiàng)目的 pom.xml 文件中,需要引入 lombok 插件和 maven 依賴。


    org.projectlombok
    lombok-maven-plugin
    1.16.8.0
    
        
            generate-sources
            
                delombok
            
        
    


    org.projectlombok
    lombok
    1.14.4

常用注解

lombok 提供了很多注解,常用的如下。
@Getter:注解在屬性上,提供 getter 方法;
@Setter:注解在屬性上,提供 setter 方法;
@AllArgsConstructor:注解在類上,提供構(gòu)造方法,參數(shù)為所有屬性;
@NoArgsConstructor:注解在類上,提供無參構(gòu)造方法;
@Data:注解在類上,提供所有屬性的 getter 方法、setter 方法以及 equals、hashCode、toString 等方法;
@Log:注解在類上,提供一個(gè)名為 log 的屬性,類型為 java.util.logging.Logger,也可使用 @Log4j、@Log4j2、@Slf4j 等其他注解;
@ToString:注解在類上,提供 toString 方法;
@EqualsAndHashCode:注解在類上,提供 equals、hashCode 方法;
@Synchronized:注解在方法上,提供 synchronized,可以指定鎖的名稱;
@NonNull:注解在方法參數(shù)上,提供對參數(shù)的校驗(yàn),防止空指針異常;
@Cleanup:注解在局部變量上,提供對資源的關(guān)閉,即調(diào)用 close 方法;

使用示例

在下面的示例中,我們使用注解生成了無參構(gòu)造器、有參構(gòu)造器、 getter/setter 方法、hashcode 方法、equals 方法、toString 方法,生成了一個(gè) slf4j 的日志工具 log,在 test 方法中生成了對于參數(shù) msg 的空指針校驗(yàn)。有了 lombok,Java 代碼變得非常簡潔。

@Data
@Slf4j
@AllArgsConstructor
@NoArgsConstructor
public class LombokTest {
    @Getter
    @Setter
    private String name;
    private int age;

    public void test(@NonNull String msg){
        log.info(msg);//lombok 提供了 slf4J 日志工具
    }

    public static void main(String[] args){
        LombokTest test = new LombokTest();//無參構(gòu)造器
        test.setAge(17);//@Data 提供set方法
        test.setName("Lucy");//@Setter 提供set方法
        System.out.println(test.getName());//get方法

        //有參構(gòu)造器,參數(shù)按屬性定義順序傳入
        LombokTest lombokTest = new LombokTest("hanmeimei",15);
        //lombok 提供了空指針檢測,會拋出異常
        lombokTest.test(null);
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70431.html

相關(guān)文章

  • 途牛原創(chuàng)|使用 lombok 簡化 Java 代碼

    摘要:使用,簡化代碼為了簡化與,提供了一種機(jī)制,幫助我們自動生成這些樣板代碼。但是,在實(shí)際項(xiàng)目中,完全沒有使用到。源碼審查是一個(gè)源碼審查工具。最新版已經(jīng)支持的全部注解,不再認(rèn)為是沒有使用的變量。 一個(gè)典型的 Java 類 public class A { private int a; private String b; public int getA() { ret...

    RyanHoo 評論0 收藏0
  • 使用lombok簡化你的Java Bean

    摘要:可標(biāo)注在類內(nèi)部生成一個(gè)名為類名的內(nèi)部類,用于快速構(gòu)建。流程是這樣的編譯源代碼,并生成語法樹尋找實(shí)現(xiàn)了的代碼,并調(diào)用。尋找被標(biāo)注了注解的類,修改生成的語法樹。將語法樹生成為字節(jié)碼就到這里了它還具備很多好用的功能,你可以去這里看看。 能做什么? 在使用lombok之前: public class Book { private Integer id; private St...

    taowen 評論0 收藏0
  • Lombok介紹、使用方法和總結(jié)

    摘要:使用方法能以簡單的注解形式來簡化代碼,提高開發(fā)人員的開發(fā)效率。能通過注解的方式,在編譯時(shí)自動為屬性生成構(gòu)造器方法。出現(xiàn)的神奇就是在源碼中沒有和方法,但是在編譯生成的字節(jié)碼文件中有和方法。沒法實(shí)現(xiàn)多種參數(shù)構(gòu)造器的重載。 1 Lombok背景介紹 官方介紹如下: Project Lombok makes java a spicier language by addi...

    30e8336b8229 評論0 收藏0
  • 使用神器Lombok優(yōu)雅編碼

    摘要:提高編碼效率使代碼更簡潔消除冗長代碼避免修改字段名字時(shí)忘記修改方法名提高下逼格以上就是的優(yōu)點(diǎn),當(dāng)然,的優(yōu)點(diǎn)遠(yuǎn)遠(yuǎn)不止以上幾點(diǎn),使用,你可以更加優(yōu)雅高效的編輯代碼。實(shí)戰(zhàn)完成了上述準(zhǔn)備之后,就可以愉快的使用進(jìn)行編碼了。接下來是使用簡化后的代碼。 Lombok介紹 近來偶遇一款擼碼神器,介紹給大家~相信許多小伙伴都深有體會,POJO類中的千篇一律的getter/setter,construct...

    _ang 評論0 收藏0
  • 使用Lombok來精簡你的項(xiàng)目代碼

    摘要:什么是一言以蔽之是一種工具,提供了簡單的注解來簡化我們的重復(fù)冗長代碼。但在實(shí)際的項(xiàng)目中,我們常常只在定義的時(shí)候用上,而在業(yè)務(wù)代碼中很少用到??偨Y(jié)是個(gè)非常有用的工具,能夠幫助我們精簡很多臃腫冗長的代碼,不過也有其局限性,推薦在定義中使用。 什么是Lombok 一言以蔽之:lombok是一種工具,提供了簡單的注解來簡化我們的重復(fù)冗長Java代碼。比如一個(gè)Java Bean,注解了lombo...

    AJie 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<