中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java基礎 (6) - 枚舉

發布時間:2020-07-06 02:43:30 來源:網絡 閱讀:138 作者:lm8751 欄目:編程語言

能解決
1.類或方法強制使用者傳入預設的值
2.性能相對常量更好 - (Android環境除外)

使用辦法
public enum ColorEnum{
WHITE("0x000001"),BLACK("0x000002"),GREEN("0x000003");
private final String color;
private ColorEnum(String color){
this.color = color;
}

public String getColor() {
    return color;
}

 public void setColor(String color) {
 this.color = color;
}

}

和類的區別
枚舉是真正的 final,客戶端不允許創建枚舉類的實例,也不能對其進行拓展
public class Color {
public static final Color WHITE = new Color(),
BLACK = new Color(),
GREEN = new Color();
private Color() { }
}

和常量的區別
1) 無法限制開發員繼承/實現接口. (枚舉是final的構造方法是私有的)
2) 常量作為參數時,是String,int等弱類型,開發員傳入沒有在常量接口里定義的值,這個問題無法通過編譯器發現.
(常量無法 限制開發人員傳入的參數數值,而枚舉可以在編譯階段強制要求開發人員傳入規定數值)
3) 由于開發員可以直接寫常量值, 所以不能用==對比,只能用equals對比,不能優化性能
(枚舉 equals 也會轉化為 == 可參考 https://www.cnblogs.com/xiohao/p/7405423.html )
4) 編譯時,是直接把常量的值編譯到類的二進制代碼里,常量的值在升級中變化后,需要重新編譯所有引用常量的類,因為里面存的是舊值. (常量是裝載的時候放入堆里,如果發生變化,需要重新編譯裝載)

參考:
https://www.cnblogs.com/kailejun/p/6624471.html
https://blog.csdn.net/lishuangling21/article/details/71398925
https://blog.csdn.net/hzy38324/article/details/72566678
Android中枚舉情況:
https://www.cnblogs.com/zgz345/p/5871351.html
Android中枚舉替代方案
https://www.jianshu.com/p/f8ac84a3e3c1

向AI問一下細節
推薦閱讀:
  1. 枚舉
  2. 詳解JAVA枚舉

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

楚雄市| 望城县| 罗源县| 峨眉山市| 芒康县| 科尔| 龙门县| 青阳县| 哈巴河县| 陆河县| 建昌县| 遵义县| 蛟河市| 东乡县| 江华| 龙井市| 乳山市| 巍山| 金湖县| 合川市| 昌图县| 海宁市| 文登市| 天长市| 新泰市| 商河县| 济南市| 雷波县| 丁青县| 嘉鱼县| 崇义县| 靖江市| 昌黎县| 修文县| 汉川市| 太仆寺旗| 高清| 陆丰市| 安新县| 邹平县| 克拉玛依市|