簡體   English   中英

用於布爾字段的 Lombok 注釋 @Getter

[英]Lombok annotation @Getter for boolean field

我正在使用 Java @Getter注釋@Getter為我的 POJO 生成 getter。 我有一個名為isAbcboolean字段。

在這種情況下, @Getter注釋生成一個名為isAbc() 它不應該生成一個名為isIsAbc()嗎?

閱讀 lombok 頁面上的“小字”部分https://projectlombok.org/features/GetterSetter.html

對於以 開頭的布爾字段,后面緊跟標題大小寫字母,沒有任何前綴來生成 getter 名稱。

所以你所經歷的行為是指定的。

請注意, booleanBoolean的行為不同:

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM