2016-06-10 73 views
11

我正在嘗試爲我的項目使用龍目島。龍目島的建設者的遺產

我有一個A級:

@Data 
@Builder 
public class A { 
    Integer a1; 
} 

和B類:

@Data 
public class B extends A { 
    Integer b1; 

    @Builder 
    public B(Integer b1, Integer a1) { 
     super(a1); 
     this.b1 = b1; 
    } 
} 

我收到一個錯誤說B中生成器()不能覆蓋所述的助洗劑(),作爲回報輸入BBuilder與ABuilder中的返回類型不兼容。

有沒有辦法使用lombok做到這一點? 我不想爲B編寫完整的構建器,除非我沒有任何其他選項。

PS:由於Issue,我給出了類B的顯式構造函數。 我試過搜索,但我找不到相同的好解決方案。任何幫助真的很感激。

回答

13

在這裏,我們只需要調用生成器的超級。

@Data 
public class B extends A { 
    Integer b1; 

    @Builder 
    public B(Integer b1, Integer a1) { 
     super(a1); 
     this.b1 = b1; 
    } 

    public static class BBuilder extends ABuilder{ 
      BBuilder() { 
       super(); 
      } 
    } 
}