1. 程式人生 > >枚舉Enum

枚舉Enum

defined itl nbsp 並且 需要 參數類型 編譯器 錯誤 oom

1.用Enum代替整數集

//不合理的定義類型

LinearLayout one = (LinearLayout) findViewById(R.id.linearlayout_test_1);
one.setOrientation(2012);

//使用emun來定義

public class LinearLayout extends ViewGroup {
private Orientation mOrientation;

public enum Orientation {
HORIZONTAL, VERTICAL
};

public void setOrientation(Orientation dir) {
mOrientation = dir;
}
}

1.Enum(枚舉)使用起來也不比定義整數集繁瑣,同樣的可讀。另外的優點就是,它的封裝更好,最重要的是它會在編譯時被檢查。因為Java是一種Strong Type,也就是說在編譯時,編譯器會對所有原型類型和參數類型進行檢查,如果類型不對,並且沒有強制轉型的,就會報出編譯錯誤,當然編譯器所支持的自動轉型除外。比如一個需要int,而傳的參數是long,雖然都差不多,沒有溢出等,但還是會有編譯錯誤

2.不可否認enums會使得代碼更易讀更安全,但是在編寫高效Android代碼時避免使用枚舉,我們在很多經典的Java書已經看到推薦使用枚舉來代替int常量了,但是在Android開發中我不建議使用枚舉,特別是大型的App中,能不用則不用。因為它會犧牲執行的速度和並大幅增加文件體積。這也是性能優化中減少OOM的一個方面

3.在它被首次調用時,類會調用初始化方法來準備每個枚舉變量。每個枚舉項都會被聲明成一個靜態變量,並被賦值。然後將這些靜態變量放在一個名為"$VALUES"的靜態數組變量中。而這麽一大堆代碼,僅僅是為了使用j幾個整數

枚舉Enum