精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解Lombok @ToString() 的使用技巧

開發 前端
不同版本的Lombok可能會改變生成方法的輸出格式。在任何情況下,我們應該避免依賴解析toString()方法輸出的代碼。所以這其實不應該是一個問題。

大家好,我是指北君。

在平時我們工作的時候,我們經常會使用toString()? 方法來輸出一個對象的一些屬性信息。Lombok 給我們提供了一個自動生成 toString()?代碼的注解,可以減少代碼行數,如果代碼屬性比較多的話,可以避免我們些代碼的過程中出現屬性遺漏的問題。本文我們來講講 Lombok 的 ?@ToString()相關內容,以便于我們以后更好的使用 Lombok。

Lombok 的使用

首先我們添加一下 maven 依賴。

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>

然后我們創建一個 Account 的 class 來演示我們一下我們的各種操作。

@Getter
@Setter
@ToString
public class Account {

private String id;

private String name;

}

默認情況下,我們在調用 Account 的toString() 方法之后,輸出的結果可能如下:

Account(id=12345, name=account)

這是一種比較標準的格式輸出。

Lombok的配置

父類 toString() 的調用

現在假設我們有一個 SavingAccount 的 class 繼承于 Account ,我們調用 SavingAccount 的 toString() 方法時,希望把 Account 的一些屬性也能夠一起輸出, 這個時候我們可以設置 callSupper 屬性來達到我們的目的。

@ToString(callSupper = true)
public class SavingAccount extends Account {
private String savingAccountId;
// 省略 get set
}

上述代碼的操作,就能把父類 Account 的屬性都輸出出來:

SavingAccount(super=Account(id=12345, name=An account), savingAccountId=6789)

省略字段名稱

我們知道默認輸出的時候,會包含字段名稱,我們可以通過設置 includeFieldNames 來控制,是否顯示屬性名稱。

@ToString(includeFieldNames = false)
public class Account {

private String id;

private String name;

// 省略 get set
}

把 includeFieldNames 設置為 false 之后,輸出結果如下

Account(12345, An account)

使用字段代替 Getter

我們知道 getter 方法提供了用于打印的字段值。如果該類不包含某個特定字段的getter方法,那么Lombok會直接訪問該字段并獲取其值。我們可以通過設置 ?doNotUseGetters 屬性為 true,將 Lombok 配置為總是使用直接的字段值而不是getter。

@ToString(doNotUseGetters = true)
public class Account {

private String id;

private String name;

// ignored getter
public String getId() {
return "this is the id:" + id;
}

// standard getters and setters
}

如果沒有這個屬性,我們會得到通過調用getters得到的輸出。

Account(id=this is the id:12345, name=An account)

相反,通過設置doNotUseGetters屬性,輸出實際上顯示了id字段的值,而沒有調用getter。

Account(id=12345, name=An account)

字段的包含和排除

假設我們想從字符串表示中排除某些字段,例如,密碼、其他敏感信息或大的JSON結構。我們可以通過@ToString.Exclude注解來省略這些字段。讓我們把名字字段從我們的表示中排除

@ToString
public class Account {

private String id;

@ToString.Exclude
private String name;

}

或者,我們可以只指定輸出中所需的字段,我可以通過使用 @ToString(onlyExplicitlyIncluded = true) ?和 @ToString.Include來實現。

@ToString(onlyExplicitlyIncluded = true)
public class Account {

@ToString.Include
private String id;

private String name;


}

上述兩種方法,最終輸出,都只能輸出 id 字段。

Account(id=12345)

另外,Lombok 會自動忽略以$ 開頭的變量,但是我們可以通過 @ToString.Include 來強制Lombok輸出。

輸出排序

默認情況下,Lombok 的輸出,是按照字段定義的順序進行輸出的,我可以通過設置 @ToString.Include 來進行排序。我們先修改一下 Account 的字段順序, 然后對 id 進行標記順序。

@ToString
public class Account {

private String name;

@ToString.Include(rank = 1)
private String id;

}

現在 id 字段輸出的時候,會排在 name 的前面

Account(id=12345, name=An account)

Lombok 輸出的規則大致如下:

  • rank 排名越大,排序越靠前
  • 默認的排序值為0
  • 相同的排序通過根據字段定義順序輸出

方法輸出

除了字段之外,我們也可以包括一個不需要參數的實例方法的輸出。我們可以通過用@ToString.Include標記無參數的實例方法來做到這一點。

@ToString
public class Account {

private String id;

private String name;

@ToString.Include
String description() {
return "Account description";
}

}

這里 description 將會作為輸出 key 進行打印輸出。

Account(id=12345, name=An account, description=Account description)

如果指定的方法名稱與字段名稱相匹配,那么該方法就會優先于字段。換句話說,輸出包含方法調用的結果,而不是匹配字段的值。

修改字段名稱

我們可以通過 @ToString.Include 的屬性來修改字段的名稱。

@ToString
public class Account {

@ToString.Include(name = "identification")
private String id;

private String name;

}

現在輸出結果中,將不會包含字段名稱id ,將會輸出 identification。

Account(identification=12345, name=An account)

打印數組

Lombok 使用 Arrays.deepToString() 方法打印數組,將數組元素轉換為其相應的字符串表示。但是數組有可能包含直接引用或間接循環引用。為了避免無限遞歸及其相關的運行時錯誤,該方法將任何從自身內部對數組的循環引用渲染為"``.``.``.``"。讓我們通過給我們的賬戶類添加一個對象數組字段來看看。

@ToString
public class Account {

private String id;

private Object[] relatedAccounts;

}

這 relatedAccounts 數組的打印如下

Account(id=12345, relatedAccounts=[54321, [...]])

重要的是,循環引用被deepToString()方法檢測到,并且被Lombok適當地呈現出來,沒有引起任何StackOverflowError。

有一些注意點

有幾個細節值得一提,對避免產生意外的結果很重要。

  • 在類中存在任何名為toString()的方法(不管返回類型如何),Lombok不會生成其 toString() 方法。
  • 不同版本的Lombok可能會改變生成方法的輸出格式。在任何情況下,我們應該避免依賴解析toString()方法輸出的代碼。所以這其實不應該是一個問題。
  • 我們還可以在枚舉上添加這個注解。這將產生一個枚舉值跟隨枚舉類名稱的表示,例如,AccounType.SAVING。
責任編輯:武曉燕 來源: Java技術指北
相關推薦

2019-11-27 10:05:00

LombokJava編程

2009-09-04 10:45:18

MyEclipse使用

2009-12-04 10:19:11

PHP hack

2023-02-01 08:22:37

2009-08-17 08:42:48

LinuxScreen命令使用技巧

2022-12-22 07:40:28

2016-10-12 13:37:09

LombokIDEidea

2021-09-29 06:03:37

JavaScriptreduce() 前端

2023-10-31 08:22:31

線程類型.NET

2009-07-31 17:51:42

linux vi命令詳linux vi命令編輯器

2009-12-07 10:54:46

PHP uploade

2022-12-23 07:36:50

RedisLettuce技巧

2022-12-27 07:39:28

RedisRedissonLettuce

2022-04-15 08:30:00

Lombok@Builde構建器

2023-09-25 13:19:41

pandasPython

2025-01-10 12:00:00

LombokMavenGradle

2011-01-19 14:39:59

Qmail技巧

2011-04-01 10:53:43

2011-01-21 14:30:02

Thunderbird技巧

2021-09-29 06:28:12

Lombok團隊語言
點贊
收藏

51CTO技術棧公眾號

波多野结衣家庭教师在线观看| 一区二区日本| 久久久久久久亚洲| 欧美伦理影院| 日韩一卡二卡三卡四卡| 欧美精品卡一卡二| 国产福利在线| 国产精品一二一区| 91av在线不卡| 国产精品免费人成网站酒店| 欧美成人专区| 欧美美女视频在线观看| 欧美视频免费看欧美视频| 都市激情一区| fc2成人免费人成在线观看播放| 国产精品久久久久久久一区探花| 欧美性x x x| 久操国产精品| 欧美精品一区二区三区蜜桃视频| avav在线看| 国模私拍视频在线播放| 中文字幕第一区二区| 国产日韩欧美一区二区| 国产精品区在线观看| 久久久精品午夜少妇| 欧美国产视频一区二区| 久久精品日韩无码| jizz大全欧美jizzcom| 日韩精品视频网址| 桃花岛tv亚洲品质| 亚洲午夜免费福利视频| 亚洲国产高清国产精品| 涩爱av在线播放一区二区| 国产精品综合二区| 国产精品直播网红| 无码人妻一区二区三区免费| 亚洲国产精品一区| 久久在精品线影院精品国产| 人人妻人人澡人人爽| 奇米777国产一区国产二区| 日韩女同互慰一区二区| 第一区免费在线观看| 亚洲综合av一区二区三区| 福利一区福利二区微拍刺激| 成人午夜视频在线观看免费| 四季久久免费一区二区三区四区| 1024国产精品| 一级一片免费播放| 欧美高清视频| 亚洲婷婷综合色高清在线| 三区精品视频| 第三区美女视频在线| 国产亚洲欧美日韩日本| 欧美日韩另类综合| 国产精品一区二区三区四区色| 91在线视频网址| 精品久久久久久一区二区里番| 韩国av免费在线观看| 高清国产一区二区| 国产精品一区二区免费| 成人免费一级视频| 成人高清免费观看| 九色综合婷婷综合| 日韩精品系列| 久久精品人人做人人爽人人| 日韩av电影免费观看| 成人欧美一区| 国产精品三级av| 中文字幕一区二区三区最新| av网站导航在线观看免费| 亚洲激情图片一区| 黄色一级片在线看| 桃花岛tv亚洲品质| 4438x成人网最大色成网站| 色姑娘综合天天| 99久久婷婷国产综合精品青牛牛 | 国产精品999在线观看| 在线视频观看日韩| 国产精品678| 国产又粗又猛视频免费| 国产盗摄一区二区三区| 精品国产一区二区三区麻豆免费观看完整版 | 亚洲第一精品电影| 国产精品扒开腿做爽爽| 99精品视频精品精品视频| 欧美乱妇高清无乱码| 欧美激情国产精品日韩| 欧美激情xxxx| 成年人看的毛片| 乱馆动漫1~6集在线观看| 香蕉加勒比综合久久| 国产在线观看福利| 欧美一级网址| 亚洲精品电影在线| 久久视频免费在线| 日韩精品一区三区| 日本伊人色综合网| 波多野结衣一区二区三区在线观看| 天天操天天爱天天干| 日本一区二区三区国色天香| 久久香蕉视频网站| 黄色综合网址| 日韩一区二区免费电影| 波多野结衣av一区二区全免费观看| 91精品国产沙发| 国产原创剧情av| 红桃成人av在线播放| 欧美成人自拍视频| 国产精品suv一区| 国产精品一区二区在线看| 精品一区二区久久久久久久网站| 岛国视频免费在线观看| 九色精品国产蝌蚪| 亚洲电影免费观看高清完整版在线观看 | 日产国产精品精品a∨| www免费在线观看| 欧美视频在线观看免费| 极品人妻一区二区| 精品久久久久久久久久久aⅴ| 欧美极品第一页| 中文字幕在线播放日韩| 久久久无码精品亚洲日韩按摩| 亚洲一区 在线播放| 欧美www.| 亚洲精美色品网站| 精品99在线观看| 麻豆国产一区二区| 日本免费高清不卡| av在线加勒比| 日韩精品一区二区三区swag| 操她视频在线观看| 日韩高清电影一区| 日本不卡二区| 五月天av在线| 亚洲国产精品中文| 国产一级免费av| 国产美女精品一区二区三区| 亚洲综合av一区| 成人午夜sm精品久久久久久久| 亚洲精品中文字| 日韩伦理在线视频| 成人av在线资源网| 99热亚洲精品| 欧美人与动xxxxz0oz| 国语自产精品视频在线看| 性一交一乱一乱一视频| 亚洲免费观看视频| 97超碰人人看| 午夜视频精品| 国产精品免费区二区三区观看| 在线观看午夜av| 日韩亚洲欧美成人一区| 亚洲色婷婷一区二区三区| 国产精品一区在线观看乱码 | 国产深夜精品| 蜜桃成人免费视频| 欧美18—19sex性hd| 亚洲人av在线影院| 波多野结衣毛片| 中文字幕巨乱亚洲| 男生操女生视频在线观看| 婷婷综合久久| a级国产乱理论片在线观看99| 欧美日韩经典丝袜| 亚洲成人久久电影| 亚洲黄色小说图片| 国产欧美一区二区三区网站| xxx国产在线观看| 中文字幕亚洲精品乱码| 成人在线视频网址| 日韩伦理在线一区| 亚洲天天在线日亚洲洲精| 一区二区视频网| 亚洲精品精品亚洲| 成熟妇人a片免费看网站| 国产一区二区三区成人欧美日韩在线观看| 精品国产乱码久久久久久108| 中文字幕人成乱码在线观看 | 日本欧美一区二区三区| 一区二区三区不卡在线| 99这里只有精品视频| 91精品国产高清久久久久久| 国产一二在线观看| 欧美一三区三区四区免费在线看| 国产稀缺真实呦乱在线| 久久午夜羞羞影院免费观看| 亚洲美女性囗交| 亚洲激情午夜| 五月天久久狠狠| 香蕉免费一区二区三区在线观看| 欧美主播福利视频| 麻豆传媒视频在线| 精品亚洲一区二区三区在线观看 | 亚洲一区二区三区四区| 日韩最新在线视频| 空姐吹箫视频大全| 欧美日韩五月天| 久久这里只有精品免费| 国产亚洲综合av| 精品国产午夜福利在线观看| 免费亚洲一区| 一二三在线视频| 精品99在线| 99久久免费国| 成人影院在线免费观看| 久久久精品在线观看| 青青草视频在线观看| 欧美一级午夜免费电影| 一级特黄免费视频| 亚洲韩国一区二区三区| 精品视频第一页| 97se亚洲国产综合自在线| 国产又粗又长又爽又黄的视频| 久久国产直播| av片在线免费| 久久精品影视| 日韩在线第一区| 中文精品一区二区| 国产免费一区二区三区| 国产95亚洲| 国产精品久久久久久中文字| 天堂资源在线| 性欧美视频videos6一9| 亚洲夜夜综合| 久久亚洲精品一区二区| melody高清在线观看| 精品视频久久久| 欧美一区,二区| 日韩精品一区二区三区在线| 亚洲专区第一页| 欧美视频在线播放| 免费黄色片视频| 色婷婷综合久久久久中文一区二区| 精品少妇久久久久久888优播| 亚洲男同性视频| 免费中文字幕日韩| 国产精品三级av| 麻豆一区在线观看| 国产精品伦一区二区三级视频| 日韩中文字幕有码| 久久蜜臀精品av| 国产精品揄拍100视频| 高h调教冰块play男男双性文| 另类图片综合电影| 日韩精品视频免费在线观看| 亚洲精品一区二区三区新线路 | 神马久久av| 精品国产乱码久久久久久久软件| 久久97久久97精品免视看秋霞| 粉嫩高清一区二区三区精品视频| 年轻的保姆91精品| 亚洲最大福利视频网站| 欧美1区2区3| 成人午夜电影在线播放| 成人爽a毛片免费啪啪红桃视频| 91精品啪在线观看麻豆免费| 日韩精品视频一区二区三区| 成人欧美一区二区三区视频| 成功精品影院| 精品免费一区二区三区蜜桃| 亚洲成在人线免费观看| 天天人人精品| 91精品成人| 女人被男人躁得好爽免费视频 | 黄色片一区二区三区| 亚洲韩国青草视频| 怡春院在线视频| 国产在线xxx| 26uuuu精品一区二区| 95视频在线观看| 91网站在线播放| 在线视频第一页| 亚洲欧美激情一区二区| 精品在线视频免费观看| 大桥未久av一区二区三区| 欧美一区二区三区久久久| 欧美日韩国产123区| 国产夫妻在线观看| 亚洲国模精品私拍| 国产免费a∨片在线观看不卡| 日韩中文字幕网址| 毛片在线导航| 国产精品第一区| 免费观看亚洲视频大全| 黄色91av| 99久久www免费| a级黄色一级片| 捆绑调教美女网站视频一区| 成人欧美精品一区二区| 国产日本欧美一区二区| 九九久久免费视频| 色呦呦网站一区| 99免费在线视频| 亚洲女同性videos| 五月花成人网| 国产精品国产福利国产秒拍| 色妞ww精品视频7777| 欧美一区二区影视| 美国一区二区| 亚洲午夜av电影| а天堂中文在线官网| 欧美亚洲另类视频| 国产麻豆精品| 日本精品一区二区三区视频| 国产精品99一区二区| 欧美日韩在线观看不卡| 不卡影院免费观看| 日本少妇aaa| 欧美性猛交xxxx久久久| 国内毛片毛片毛片毛片| 一本色道久久综合狠狠躁篇怎么玩| 美女日批视频在线观看| 91精品国产综合久久男男| 私拍精品福利视频在线一区| 特级西西444| 美女脱光内衣内裤视频久久网站| 国产精品久久AV无码| 亚洲免费毛片网站| 一级特黄aaa大片| 亚洲欧洲在线免费| 91九色国产在线播放| 91免费看国产| 成人看的视频| 手机在线免费观看毛片| 成人黄色大片在线观看| 极品久久久久久| 欧美视频在线观看一区二区| 毛片在线播放网址| 97人人模人人爽人人喊中文字 | 国产精品无码毛片| 亚洲最色的网站| 国产麻豆91视频| 日韩一中文字幕| 欧美成人家庭影院| 国产精品初高中精品久久| 亚洲AV成人无码精电影在线| 久久久亚洲高清| 成人免费看片98欧美| 欧美精品一区二区三区久久久| 亚洲婷婷噜噜| 亚洲最大成人在线| 亚洲精品成人| 免费高清视频在线观看| 亚洲日本欧美天堂| 国产精品毛片一区二区在线看舒淇| 少妇高潮久久77777| 国产精品99精品一区二区三区∴| 日本一区二区三区精品视频| 天堂久久一区二区三区| 亚洲理论片在线观看| 91精品办公室少妇高潮对白| 国产精品视频二区三区| 国产精品热视频| 91精品国产91久久久久久黑人| 免费在线观看污网站| 亚洲乱码一区二区三区在线观看| a天堂中文在线观看| 欧美大片免费观看在线观看网站推荐| 欧洲精品99毛片免费高清观看 | 日本一级片在线播放| 玖玖精品在线| 欧美丝袜自拍制服另类| 亚洲免费一级片| 高清欧美电影在线| 欧美大片网址| 亚洲精品高清无码视频| 国产精品久久久久三级| 国产伦子伦对白视频| 欧美—级高清免费播放| 伊人久久大香线蕉| 在线看的黄色网址| 一区二区三区中文在线观看| 五月激情婷婷综合| 欧美日韩国产123区| 久久婷婷五月综合色国产香蕉| 91蜜桃臀久久一区二区| 国产免费裸体视频| 99精品久久只有精品| 亚洲精品成人在线视频| 丝袜情趣国产精品| 亚洲性视频在线| 国产一区亚洲二区三区| 久久精品日产第一区二区三区高清版 | 91热视频在线观看| 精品久久国产| 日本三区在线观看| 中文字幕一区二区三区色视频 | 激情综合网五月婷婷| 亚洲欧美精品中文字幕在线| 亚洲二区av| 精品欧美一区免费观看α√| 国产精品久久久久久久午夜片| 亚洲黄色a级片| 国产精品免费久久久久影院| 黄色一区二区三区四区| 永久免费av无码网站性色av| 日韩视频一区二区三区| 香蕉视频亚洲一级| 黄色成人在线免费观看| 国产色产综合产在线视频|