Lombok 使用攻略

1. Lombok 簡介

   Lombok 能夠經過簡單的註解來幫助咱們簡化消除一些必須有但顯得很臃腫的Java代碼,經過使用對應的註解,能夠在編譯源碼的時候生成對應的方法。ui

   Lombok 既是一個 IDE 插件,也是一個項目要依賴的 jar 包。this

   Lombok 依賴 jar 包的緣由是由於編譯時要用它的註解。插件的緣由是他要在編譯器編譯時經過操做 AST (抽象語法樹)改變字節碼生成。spa

   也就是說它能夠改變 Java 語法. 它不像 Spring 的依賴注入或者 Hibernate 的 orm 同樣是運行時的特性,而是編譯時的特性。插件

   官網地址:https://projectlombok.org3d

2. 使用方式  

 Maven 座標:code

 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>

    IDEA 安裝插件:orm

   編譯時啓用註解處理:blog

3. 項目實戰

  不使用 Lombok @Data:get

public class Student{ 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; } }

   使用 Lombok @Data (編譯時爲全部字段添加@ToString/@EqualsAndHashCode/@Getter/爲非final字段添加@Setter/@RequiredArgsConstructor):input

@Data public class Student{ private int age = 10; private String name; }

   不使用  Lombok @CleanUp:

        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(); } }

   使用 Lombok@CleanUp(在編譯時添加調用close方法):

        @Cleanup InputStream inputStream = new FileInputStream(args[0]); @Cleanup OutputStream outputStream = new FileOutputStream(args[1]); byte[] b = new byte[10000]; while (true) { int r = inputStream.read(b); if (r == -1) break; outputStream.write(b, 0, r); }

   固然還有比 @Data 粒度更小的註解,好比 @Getter、@Setter、@NoArgsConstructor,更多註解:https://projectlombok.org/features/all

相關文章
相關標籤/搜索