亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

java - enum是什么? 為什么有它? 怎么用?

瀏覽:93日期:2023-12-10 16:02:37

問題描述

實際現象

enum的基本會用, 但想追本溯源( 探討下本質 )

預期現象

拒絕教條式的摘抄文檔式的回答(時間重要)

求對enum深刻的認識(至少在實際生產環境中寫過很多代碼) !

注: 我不是編程初學者, 一些初級概念無需科普

上下文環境

討論的對象, 為Java中的enum( 其實enum是一種概念 )

具體地, 是討論enum 這個關鍵字

問題解答

回答1:

可以用來代替定義類型常量 ,比如 訂單狀態,證件類型等,保證類型安全 比如用普通的String類表示訂單狀態,調用方可以傳一個不在訂單狀態范圍內的String給被調用方,這種錯誤在編譯階段不能發現

java枚舉類本質是一個多例模式實現,單例模式是多例模式的一個特例

枚舉類不能繼承,比如enumA extends enumB不行

一個枚舉類 內部類型有順序(order) 實現了 Comparable接口

回答2:

Effective Java 第6章有詳細的解釋,可以去看看

回答3:

可以簡單把enum看成一個有備注信息的int類型。

回答4:

被你的條件嚇到了,我就說一點我個人的想法

enum可以看做一種特殊的class,包含一些訪問性公開的常量,其實作為訪問性公開的常量來說,在類加載過程中已經被解析到常量池,enum只是從語義的角度使用戶可以更方便地在使用常量時展示常量的含義。同時也方便了常量的構造,循環遍歷某一類型的所有常量,在switch語句中使用等等。

回答5:

這個題目太泛,不太好回答。enum本質上是一個繼承了java.lang.Enum的class,可以用在單例和需要限定輸入的地方

回答6:

先說說自己個人的膚淺的主觀的理解, 拋磚引玉.

我覺得 enum 出現的目的是:

提供一種管理常量的手段,

一種命名空間.

回答7:

enum的存在本身就是為了解決常量的可讀性的問題,在沒有enum之前,標記一種狀態,常使用int類型,其1,2之類的可讀性不是很好,而且新增一個常量要寫一個長長語句,為了解決這一系列問題在jdk5就加上了這個功能。其本質就是一個類,只不過在創建enum的時候,會自動生成values()、ordinal()等方法,并且支持了switch語句,覆蓋了常量會出現的場景,比直接定義常量要方便使用。

標簽: java
相關文章:
主站蜘蛛池模板: 亚洲综合伊人色一区 | 国产精品自拍合集 | 视频一二三区 | 一道本久久| 亚洲国产精品自产拍在线播放 | 男女性关系视频免费观看软件 | 国产欧美一区二区三区精品 | 久久久久久一品道精品免费看 | 国产在线成人一区二区 | 亚洲欧洲国产成人综合一本 | 国产精品视_精品国产免费 国产精品视频久 | 男人天堂视频在线观看 | 美女又黄又免费视频 | 久久99这里只有精品国产 | 国产高清日韩 | 日韩综合久久 | 国产不卡一区二区三区免费视 | 亚洲视频观看 | 成人免费在线播放视频 | 亚洲欧美一区二区三区国产精品 | 国产成人精品日本亚洲网址 | 国产亚洲综合在线 | 国产手机在线视频 | 狠狠色综合久久婷婷 | 国产精品视频久久久久久 | www.av在线免费观看 | 99精品视频在线观看免费播放 | 久久久亚洲精品蜜桃臀 | 波野多结衣在线观看 | 亚洲影院在线播放 | 国内精品一区二区三区最新 | 色樱桃影院亚洲精品影院 | 颜值超高的女神啪啪 | 免费在线精品视频 | 亚洲成人免费 | 特级一级毛片视频免费观看 | 三级视频网站在线观看播放 | 国产护士一级毛片高清 | 99www综合久久爱com | 办公室紧身裙丝袜av在线 | 欧美一级欧美三级在线观看 |