@builder 無法繼承父類的解決辦法


在Lombock下,使用@builder無法繼承父類的解決辦法

在Lombock1.18.4以后增加了@SuperBuilder注解來解決,但是可能是功能不完整,暫時還是無法解決繼承問題

於是按照網上其他達人的方案,自主實現@builder,雖然有點啰嗦,單好歹能用,期待@SuperBuilder后續能徹底解決問題,先將實現方式記錄如下



  /**
  * 關鍵:父類里面用@AllArgsConstructor  標識一個全參構造函數
 **/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor  
public class ParentBase implements Serializable {
    protected  String name;
}


@Getter
@Setter
@NoArgsConstructor
public class ChildClass extends ParentBase implements Serializable {


    private Integer age;

    /**
    * 子類里面需要自己寫一個Builder的構造器,來重寫父類參數
    **/
    @Builder(toBuilder = true)
    public ChildClass(String name,Integerage){
        super(name);
        this.age= age;
    }
}


    // 使用的時候就可以正常使用了:
    
    ChildClass child = ChildClass.builder().name("張三").age(16).build();

基於以上兩步,可以在@SuperBuilder完善之前暫時使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM