日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

枚举:如何正确使用name()和toString()方法

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 枚举:如何正确使用name()和toString()方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

兩種方法之間的區別?

Java枚舉有兩種方法來檢索枚舉常量的值: name().toString()toString()方法調用name()方法,該方法返回枚舉常量的字符串表示形式。 在清單1中,通過在Animal.DOG常量方法上調用name()toString()返回的值是DOG

清單1:動物枚舉

public enum Animal {DOG }// Unit test assertThat(DOG.toString()).isEqualTo(DOG.name());

因此,鑒于兩種方法都返回相同的值,您可能會認為它們可以互換使用,并且在大多數情況下,這是正確的。 但是,這兩種方法之間的區別很重要。

有什么不同?

name()方法是最終的,因此不能被覆蓋,相反, toString()方法是打開的并且可以被覆蓋。 實際上,鼓勵重寫toString()方法。 應該實現它并返回友好的枚舉常量版本。 清單2顯示了如何完成此操作。

清單2:覆蓋toString()方法

public enum Animal {DOG {public String toString() {return "Dog";}} }// Unit test assertThat(DOG.toString()).isNotEqualTo(DOG.name());

Animal.DOG枚舉常量上調用toString()的輸出為Dog 。 因此,現在name()方法和toString()方法不會返回相同的值。

Java文檔怎么說

讓我們更深入地研究一下Java文檔,該文檔建議:

大多數程序員應該優先于name()方法使用toString()方法,因為toString()方法可能返回更用戶友好的名稱。

這就提出了一個問題。 什么時候應該使用.name()方法?

根據Java文檔:

name()方法主要設計用于特殊情況,在這些情況下正確性取決于獲得確切的名稱,而不同的發布版本之間并不會有所不同。

那么他們指的是什么特殊情況? valueOf()方法可能會給我們提示。 此方法采用String值,并嘗試查找與之完全匹配的枚舉。 看一下清單3中的代碼。

清單3:valueOf()方法返回DOG

assertThat(DOG).isEqualTo(Animal.valueOf("DOG"));

傳遞給valueOf()方法的String值必須與枚舉常量完全匹配,否則將引發IllegalArgumentException

源代碼

本文的代碼示例和單元測試存儲在GitHub存儲庫ReadLearnCode / readlearncode_articles中 。

結論

當基于字符串值填充枚舉字段時,這是一種非常有用的方法。 何時執行此操作的一個示例是在反序列化包含枚舉常量的JSON文檔時。 在這種情況下,應使用name()方法以保持往返等效性。

您不能保證toString()方法不會被覆蓋,但是name()方法將始終返回枚舉的字符串等效項。

進一步閱讀

您可能對我的文章“策略模式的枚舉實現”感興趣。

翻譯自: https://www.javacodegeeks.com/2017/09/enum-use-name-tostring-methods-correctly.html

總結

以上是生活随笔為你收集整理的枚举:如何正确使用name()和toString()方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美色图小说 | 国产福利视频在线观看 | 少女国产免费观看 | 亚洲成人av电影 | 天天噜 | 少妇精品无码一区二区免费视频 | 全部孕妇毛片丰满孕妇孕交 | 久久性色 | 日韩啊v | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 国产欧美日韩在线视频 | 免费毛片软件 | 免费在线日韩av | 日本美女逼 | 国产又粗又黄又爽又硬的视频 | 男性影院| 欧美黑人又粗又大又爽免费 | 原创露脸88av | 一本不卡 | 欧美午夜精品一区二区 | 国产精品边吃奶边做爽 | 夜夜操操 | 成人交配视频 | 亚洲精品专区 | av色欲无码人妻中文字幕 | 色噜噜狠狠狠综合曰曰曰88av | 欧美成人午夜 | 亚洲va在线∨a天堂va欧美va | 久久久永久久久人妻精品麻豆 | 免费观看a视频 | 色 综合 欧美 亚洲 国产 | 亚洲777| 午夜视频福利网站 | 成年人性生活免费视频 | 法国空姐在线观看视频 | 法国空姐在线观看视频 | 香蕉久热 | 91快射| 日韩伦理中文字幕 | 日本在线观看一区二区三区 | 韩日av| 色欲av无码精品一区 | 国产乱国产乱老熟 | 国产粉嫩白浆 | 久久激情小说 | 打屁股疼的撕心裂肺的视频 | 一线毛片 | 国产精品久免费的黄网站 | 97se.com | 乱色精品无码一区二区国产盗 | av怡红院 | 精品免费一区二区 | 国产精品日韩专区 | 男人免费视频 | 极品白嫩少妇无套内谢 | 久久99久久99精品中文字幕 | 日韩激情一区二区 | 全部毛片永久免费看 | 亚洲第一字幕 | 国产99久久久国产精品免费看 | 久久久久久免费观看 | 激情拍拍拍 | 女警白嫩翘臀呻吟迎合 | 免费在线观看黄色 | 国产91熟女高潮一区二区 | 97干在线视频 | 人妻精品久久久久中文字幕 | 全部免费毛片在线播放 | 色小说在线 | 久久尤物视频 | wwwxxx日本| 国产成人三级在线 | 精品自拍一区 | 奇米狠狠 | 国产精品久久久久久婷婷天堂 | 国产成人一区二区三区 | 国产不卡av在线 | 亚洲精品色| 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | 午夜性福利视频 | 国产喷白浆一区二区三区 | 99天堂网 | 另类视频一区 | 日本a级无毛 | 三级a毛片 | 性欧美hd调教 | 欧美高清精品一区二区 | 久久精品在这里 | 国产特级淫片免费看 | 好吊视频一区二区三区 | 欧美三级午夜理伦三级中视频 | 国产成人在线视频 | 久久久wwww | 深夜免费视频 | 日本精品网站 | 人妻一区二区三区四区 | 香蕉视频色| 亚洲一区免费在线 | 中文字幕日本在线 |