Java中的@Accessors使用詳解
一、什么是@Accessors注解?
@RequiredArgsConstructor是Lombok的一個(gè)注解,簡(jiǎn)化了我們對(duì)setter和getter方法操作。
它可以作用在類上,也可以作用在類的單個(gè)屬性上。
修飾類的時(shí)候?qū)@個(gè)類的所有屬性都是有效的,修飾單個(gè)屬性的時(shí)候,只對(duì)當(dāng)前的屬性有效。
二、@Accessors導(dǎo)包
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency>
三、@Accessors源碼講解和使用案例
從源碼可以知道,該注解有三個(gè)屬性,分別是fluent,chain,prefix。
其中,fluent和chain是boolean類型,默認(rèn)值都是false,prefix是數(shù)組類型,默認(rèn)值為空。
fluent:默認(rèn)值為false,當(dāng)該值為true時(shí),省略對(duì)象賦值和取值的set和get前綴
@Data @Accessors(fluent = true) public class Animal { String name; Integer age; public static void main(String[] args) { Animal animal = new Animal(); //賦值的時(shí)候省略了前綴set animal.name("狗"); //取值的時(shí)候省略了前綴get String animalName = animal.name(); System.out.println(animalName); } }
chain:默認(rèn)值為false,當(dāng)該值為true時(shí),對(duì)應(yīng)字段的setter方法調(diào)用后,會(huì)返回當(dāng)前對(duì)象
@Data @Accessors(chain = true) public class Animal { String name; Integer age; public static void main(String[] args) { //new出的對(duì)象直接賦值,返回當(dāng)前對(duì)象 Animal animal = new Animal().setName("狗").setAge(2); System.out.println("直接返回當(dāng)前對(duì)象:"+animal.toString()); } }
prefix:該屬性是一個(gè)字符串?dāng)?shù)組,默認(rèn)值為空,該數(shù)組有值的時(shí)候,表示忽略字段對(duì)應(yīng)的前綴,生成對(duì)應(yīng)的getter和setter方法
@Data @Accessors(prefix = {"aa", "bb"}) public class Animal { String aaName; Integer bbAge; public static void main(String[] args) { Animal animal = new Animal(); //忽略了前綴aa進(jìn)行賦值 animal.setName("狗"); //忽略了前綴bb進(jìn)行賦值 animal.setAge(2); System.out.println("忽略了前綴aa和bb:" + animal.toString()); } }
到此這篇關(guān)于Java中的@Accessors使用詳解的文章就介紹到這了,更多相關(guān)@Accessors使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Java變異出現(xiàn)錯(cuò)誤No enclosing instance of type XXX is accessible
這牌你文章主要給大家分享解決Java變異出現(xiàn)錯(cuò)誤,具體的饑餓絕方案請(qǐng)看下面文章的內(nèi)容,需要的朋友可以參考一下,希望能幫助到你2021-09-09Java實(shí)現(xiàn)插入排序,希爾排序和歸并排序
這篇文章主要為大家詳細(xì)介紹了插入排序,希爾排序和歸并排序的多種語(yǔ)言的實(shí)現(xiàn)(JavaScript、Python、Go語(yǔ)言、Java),感興趣的小伙伴可以了解一下2022-12-12使用SpringBoot的CommandLineRunner遇到的坑及解決
這篇文章主要介紹了使用SpringBoot的CommandLineRunner遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Java web.xml之contextConfigLocation作用案例詳解
這篇文章主要介紹了Java web.xml之contextConfigLocation作用案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08SpringBoot2.x 參數(shù)校驗(yàn)問題小結(jié)
這篇文章主要介紹了SpringBoot2.x 參數(shù)校驗(yàn)一些問題總結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Java 實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽文件夾是否有新文件增加并上傳服務(wù)器功能
本文中主要陳述一種實(shí)時(shí)監(jiān)聽文件夾中是否有文件增加的功能,可用于實(shí)際文件上傳功能的開發(fā)。本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-09-09