新聞中心
JAVA推薦使用枚舉代替int
1 枚舉提供了類型安全檢測
2 枚舉隔離了使用的類和枚舉類型,使增加和重排無需重新編譯
3 本質(zhì)上是單元素枚舉,final類型,不支持?jǐn)U展(繼承),但是可以自由使用接口和方法。
4 便于理解,維護
5 絕對安全的單例類型(相對于雙重鎖,無法被反序列化創(chuàng)造多個實例)

在二連浩特等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),二連浩特網(wǎng)站建設(shè)費用合理。
Android 不建議使用枚舉的原因
1 手機內(nèi)存資源有限,ENUM將會增大最終的DEX文件,大約是Integer常量的13倍,大量使用會影響程序性能。
2 虛擬機加載枚舉類,并且實例化所有的枚舉項,并且這些枚舉實例的內(nèi)存無法回收,而且枚舉是單例,如果自定義的枚舉類中包含了大塊內(nèi)存的引用,也可能會帶來內(nèi)存泄露。
實例域代替系數(shù)
永遠(yuǎn)不要根據(jù)枚舉的序數(shù)導(dǎo)出與它關(guān)聯(lián)的值(ordinal()方法雖然從0開始,但是當(dāng)常量重排序時會混亂),而是要將它保存在一個實例域中:
public enum Ensemble {
SOLO(1), DUET(2), TRIO(3), QUARTET(4), QUINTET(5),
private final int numberOfMusicians;
Ensemble(int size ) { this.numberOfMusicians = size; }
public int numberOfMusicians() { return numberOfMusicians;}
}
EnumSet代替位域
位域:text.applyStyles(STYLE_BOLD | STYLE_ITALIC);
位域表示的缺陷:位域以數(shù)字形式打印時,翻譯位域比翻譯簡單的int枚舉常量要困難得多;要遍歷位域表示的所有元素也沒有很容易的方法。
EnumSet:
public class Text {
public enum Style {BOLD , ITALIC , UNDERLINE , STRIKETHROUGH}
// Any Set could be passed in , but EnumSet is clearly best
public void applyStyles(Set


咨詢
建站咨詢