您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Lombok中@Accessors注解的作用是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
@Accessors注解官方給出的解釋是:面向getter和setter的更流暢的API。
官方給出實驗(設計)原因是:
希望將這些功能整合到更完整的屬性支持概念中。
新功能–需要社區反饋。
當前狀態:中性-可能會有一些變化。這些更改旨在向后兼容,但應從實驗功能開始:
開放功能請求:以小寫字母開頭,后跟大寫字母開頭的屬性的命名行為。一半的規范,工具和lombok用戶更喜歡將名為uLimit的字段轉換為getULimit(包括lombok),而另一半則更喜歡getuLimit。 @Accessors可能參與解決此請求的任何更新。
開放功能請求:對命名訪問者的更多控制;例如,解決以創意命名的布爾屬性:將boolean wasRunning轉換為boolean wasRunning()而不是boolean isWasRunning(),以及更廣泛的前綴支持。如果解決了此功能請求,則將涉及@Accessors。
@Accessors當前不會從字段@Accessors批注“層疊”到類級別的@Accessors批注,但會將其“層疊”到lombok.config。更改此設置并不困難,但向后不兼容。不太可能破壞很多現有代碼,但這需要在功能退出實驗狀態之前進行決定。
@Accessors批注用于配置lombok生成和查找getter和setter的方式。
默認情況下,lombok遵循針對getter和setter的bean規范:例如,名為Pepper的字段的getter是getPepper。但是,有些人可能希望打破bean規范,以得到更好看的API。 @Accessors允許您執行此操作。
一些程序員喜歡在其字段中使用前綴,即他們寫的是fPepper而不是Pepper。我們強烈建議您不要這樣做,因為您無法對前綴的有效性進行單元測試,并且重構腳本可能會將字段轉換為局部變量或方法名稱。此外,如果您希望該信息立即可見,則您的工具(例如您的編輯器)可以以某種方式來處理標識符。不過,您也可以通過@Accessors列出項目使用的前綴。
因此@Accessors具有3個選項 :
fluent-- 一個布爾值。如果為true,則胡椒粉的吸氣劑僅是Pepper(),而裝填器的是Pepper(T newValue)。此外,除非指定,否則chain默認為true。 默認值:false。
chain--一個布爾值。如果為true,則生成的setter返回此值,而不是void。 默認值:false,除非fluent = true,否則默認值:true。
prefix--字符串列表。如果存在,則字段必須以這些前綴中的任何一個作為前綴。依次將每個字段名稱與列表中的每個前綴進行比較,如果找到匹配項,則將前綴去掉以創建該字段的基本名稱。在列表中包括一個始終匹配的空字符串是合法的。對于字母字符,前綴后面的字符不能為小寫字母,即Pepper甚至不能與前綴p匹配,但pEpper可以匹配(并且意味著該字段的基本名稱是epper)。
@Accessors注釋在類型和字段上合法;如果存在,則適用的注釋是該字段上的注釋,否則為該類上的注釋。當在字段上存在@Accessors批注時,即使在字段@Accessors上未配置的屬性,也將忽略該字段所在的類中也存在的任何@Accessors批注。這與任何lombok.config配置鍵相反,如果未指定任何顯式@Accessors批注,這些配置鍵將作為后備默認值。
import lombok.experimental.Accessors; import lombok.Getter; import lombok.Setter; @Accessors(fluent = true) public class AccessorsExample { @Getter @Setter private int age = 10; } class PrefixExample { @Accessors(prefix = "f") @Getter private String fName = "Hello, World!"; }
public class AccessorsExample { private int age = 10; public int age() { return this.age; } public AccessorsExample age(final int age) { this.age = age; return this; } } class PrefixExample { private String fName = "Hello, World!"; public String getName() { return this.fName; } }
lombok.accessors.chain = [true | false] (default: false)
如果設置為true,則任何沒有@Accessors批注或沒有@Accessors批注但該批注不具有chain參數的顯式值的類,都將像出現@Accessors(chain = true)一樣起作用。
lombok.accessors.fluent = [true | false] (default: false)
如果設置為true,則任何沒有@Accessors批注或沒有@Accessors批注但該批注沒有fluent參數的顯式值的類都將像@Accessors(fluent = true)一樣存在。
lombok.accessors.prefix += a field prefix (default: empty list)
這是一個列表屬性;可以使用+ =運算符添加條目。可以使用-=運算符刪除從父配置文件繼承的前綴。任何沒有或沒有@Accessors批注的類都可以,就好像存在@Accessors(prefix = {在配置中列出的前綴})一樣。
lombok.accessors.flagUsage = [warning | error] (default: not set)
如果已配置,Lombok會將@Accessors的任何用法標記為警告或錯誤。
最近的@Accessors 注解還用于lombok中用于各種尋找類的getter方法,例如@EqualsAndHashCode。
@EqualsAndHashCode。 如果提供了前綴列表,并且字段不是以其中一個開頭,則該字段將被lombok完全跳過,并會生成警告。
關于Lombok中@Accessors注解的作用是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。