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

