2016-12-15 52 views
0

我在編寫pojos時使用lombok的註釋@Data,因爲它自動爲我生成構造函數,hashCode以及其他方法。它像一個魅力,直到我試圖在這樣一個Pojo類中使用@Data。創建POJO時添加規則

@Data 
public class MyPojo { 
    private final String name; 
    private final int from; 
    private final int to; 
    // other fields 
} 

我需要做的就是限制創建這個POJO時fromto值,以便to總是比from更大,但似乎爲了達到這樣的邏輯,我不得不重新改寫構造函數全部由我自己製作,其代碼類似於this.name = name。 PS:我認爲從繼承中使用super可能是一種解決方法,但它可能會使程序難以理解。

有沒有更好的方法來滿足這種需求?

回答

0

看看龍目島的網站,我沒有看到任何方法來限制構造函數參數到特定的值,特別是相對於另一個可能還沒有被初始化的變量。你可能必須爲這個類創建一個具體的構造函數。

,但它可以使程序更難理解

我真的不會因爲你已經在使用龍目島,試圖跟蹤時會做任何大的程序非常混亂有關擔心下來一個特定的領域/方法。

0

@Data annotation沒有提供任何方法來驗證構造參數。我覺得你需要用@Getter @Setter @ToString @EqualsAndHashCode註釋來註釋pojo,並自己編寫構造函數。