1 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
首先我要說(shuō)的是,使用@Singular
不一定是最好的解決方案——這取決于您的用例。但是,在大多數(shù)情況下,如果您希望確保使用集合的類的不變性,那么這是一個(gè)不錯(cuò)的選擇。
@Singular
其行為方式是因?yàn)?Lombok 設(shè)計(jì)師認(rèn)為這樣做是一個(gè)不錯(cuò)的選擇。我同意:它使兩個(gè) setter 方法的行為相似;在極少數(shù)情況下,您想要重置構(gòu)建器中的元素,您可以使用該clear
方法。
@Singular
生成相當(dāng)復(fù)雜的代碼,這是為了確保效率和不變性等屬性(也在重用構(gòu)建器來(lái)生成多個(gè)對(duì)象時(shí))。當(dāng)您修改該代碼時(shí),很容易違反這些屬性。Lombok 阻止你這樣做。
如果你真的想修改這方面,你有三個(gè)選擇:
delombok
構(gòu)建器代碼,將其復(fù)制到您的類中,然后修改它。添加另一個(gè)不同名稱的方法,例如
clearAndSetElements(List<String>)
.?但這可能更令人困惑。@Singular
自行刪除并實(shí)現(xiàn) setter 方法。如果你想要 Lombok 實(shí)現(xiàn)的特性,你就必須在實(shí)現(xiàn)上付出一些努力;您可以使用delombok
ed 代碼作為靈感。
添加回答
舉報(bào)