<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] ## 鏈式編程的原理 鏈式編程可以使得代碼可讀性高,鏈式編程的原理就是返回一個this對象,就是返回本身,達到鏈式效果,舉個例子,下面是一個學生bean。 ```java public class StudentBean {鏈式編程可以使得代碼可讀性高,鏈式編程的原理就是返回一個this對象,就是返回本身,達到鏈式效果,舉個例子,下面是一個學生bean public class StudentBean { private String name; private int age; public String getName() { return name; } public StudentBean setName(String name) { this.name = name; return this; } public int getAge() { return age; } public StudentBean setAge(int age) { this.age = age; return this; } } ``` 這段代碼和傳統的Bean區別就是我在set屬性時候會返回一個this這樣就達到了鏈式編程的效果 ```java public static void main(String[] args) { StudentBean studentBean = new StudentBean().setAge(22).setName("ly"); System.out.println(studentBean.getAge()); System.out.println(studentBean.getName()); } ``` lombok其實已經提供該style,我們把這個bean改成lombok實現只需要加上一個@Accessors(chain = true)即可 ```java @Accessors(chain = true) @Getter @Setter public class StudentBean { private String name; private int age; } ``` 這樣代碼簡潔多了 ,而且實現了鏈式編程,那如何用lombok實現一個靜態的鏈式編程呢。 ## 靜態鏈式編程 再回過頭來看剛剛的StudentBean,很多時候,我們去寫StudentBean這個bean的時候,他會有一些必輸字段,比如StudentBean中的name字段,一般處理的方式是將name字段包裝成一個構造方法,只有傳入name這樣的構造方法,才能創建一個StudentBean對象。 接上上邊的靜態構造方法和必傳參數的構造方法,使用lombok將更改成如下寫法(@RequiredArgsConstructor 和 @NonNull): ```java @Accessors(chain = true) @Getter @Setter @RequiredArgsConstructor(staticName = "of") public class StudentBean { @NonNull private String name; private int age; } ``` 測試方法: ```java public static void main(String[] args) { StudentBean studentBean = StudentBean.of("ly").setAge(22); System.out.println(studentBean.getAge()); System.out.println(studentBean.getName()); } ``` 這樣不僅實現了鏈式編程,還實現了靜態創建,那么怎么實現一個builder模式的鏈式Bean呢。 ## builder模式 build模式實現原理為在bean里面創建一個靜態builder方法和一個靜態內部Builder類,通過調用靜態builder方法來創建Builder類,然后通過builder類中的build方法直接創建一個Bean,具體如下: ```java public class StudentBean { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static Builder builder() { return new Builder(); } public static class Builder{ private String name; private int age; public Builder name(String name) { this.name = name; return this; } public Builder age(int age) { this.age = age; return this; } public StudentBean build() { StudentBean studentBean = new StudentBean(); studentBean.setName(name); studentBean.setAge(age); return studentBean; } } } ``` 測試方法: ```java StudentBean studentBean = StudentBean.builder().name("ly").age(11).build(); ``` 這樣就實現了一個builder模式的鏈式bean,其實用lombok就一個注解的事情,調用與上面同樣 ```java @Builder public class StudentBean { private String name; private int age; } ``` ### 使用Lombok Builder模式 添加`@Builder`注解修飾類即可 ~~~ @Data @Builder public class VehicleLicenseBackSide { String curbWeight; String carNumber; String tractionMass; String authorizedCapacity; String dimensions; String totalMass; String ileNumber; String record; String fuelType; String approvedCapacity; String remark; String size; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看