![](/img/trans.png)
[英]Default field value with @Builder or @Getter annotation in Lombok
[英]Lombok annotation @Getter for boolean field
我正在使用 Java @Getter
注釋@Getter
為我的 POJO 生成 getter。 我有一個名為isAbc
的boolean
字段。
在這種情況下, @Getter
注釋生成一個名為isAbc()
。 它不應該生成一個名為isIsAbc()
嗎?
閱讀 lombok 頁面上的“小字”部分https://projectlombok.org/features/GetterSetter.html
對於以 開頭的布爾字段,后面緊跟標題大小寫字母,沒有任何前綴來生成 getter 名稱。
所以你所經歷的行為是指定的。
請注意, boolean
和Boolean
的行為不同:
@Getter
private boolean isGood; // => isGood()
@Getter
private boolean good; // => isGood()
@Getter
private Boolean isGood; // => getIsGood()
如果名稱已經以is
開頭, is
Lombok 不以is
前綴,后跟一個大寫字母,如isGood
。
你可能會遇到像canDelete
這樣的名字,這會讓你感到沮喪,它會生成一個名為isCanDelete
的 getter。 為避免這種情況,您可以使用fluent
參數,如下所示:
@Getter(fluent = true)
private boolean canDelete;
或(取決於版本):
@Getter
@Accessors(fluent = true)
private boolean canDelete;
在這種情況下,它將保留名稱不變。
我對lombok(1.16.8)做了一些測試,結論如下。
private Boolean good;
getter => getGood() Boolean
setter => setGood(Boolean good) void
private boolean good;
getter => isGood() boolean
setter => setGood(boolean good) void
private Boolean isGood;
getter => getIsGood() Boolean
setter => setIsGood() void
private boolean isGood;
getter => isGood() boolean
setter => setGood(boolean good) void
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.