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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Effective Java之用enum代替int常量(三十)

發布時間:2024/2/28 java 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Effective Java之用enum代替int常量(三十) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Int枚舉常量

public class mytest {public static final int num_one = 1;public static final int num_two = 2;public static final int num_three = 3;public static final int char_A = 1;public static final int char_B = 2;public static final int char_C = 3; }

這種方法叫做int枚舉模式,缺點:

1.類型安全性不能保證,num和char兩種不同的東西,兩者可以相互傳參,互相對比,不符合我們的常識。
2.要打印出來值的之后,得到的就只有一個數字,沒什么作用。
3.想要遍歷同一組的常量,或者求出這一組常量的數目,沒什么好的方法。
4.如果是String枚舉模式,把字符串硬編碼到客戶端代碼中,一旦出現書寫錯誤,將難以發現。

2.enum枚舉常量

public enum Number {one(1),two(2),three(3);private final int i;private Number(int k) {i=k;}@Overridepublic String toString() {return "我的值是" +i;} }

首先介紹一下枚舉類的原理:
1.枚舉就是通過公有的靜態final域為每個枚舉類型導出實例的類。如例子中的one,two,three;
2.它的訪問器必須是private的,所以它是真正的final,也就是說它無法創建實例,無法擴展,所以說它是實例受控的。

枚舉類的相比int枚舉優點:
1.保證類型安全,傳參必須保證類型一致,同時不同的枚舉用“==”比較會編譯錯誤。
2.可以重寫toString方法,得到想要的字符串。
3.可以用枚舉的values方法遍歷所以枚舉常量

上面的三點都是完善int枚舉類型,還有它還提供和很多高級特性:
4.枚舉類型允許添加任意的方法和域,由于它繼承了Enum,所以它不支持繼承,它只能實現接口。
5.它實現了Comparable和Seriazable,所以它支持比較和序列化。這也是它是單例模式的最佳選擇之一的原因。

注意:由于枚舉天生是不可變的,所以它的所有域都應該聲明成final,為了封裝型,最好聲明成private。

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的Effective Java之用enum代替int常量(三十)的全部內容,希望文章能夠幫你解決所遇到的問題。

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