android列舉enum
阿新 • • 發佈:2018-12-11
這篇例子可以獲取到列舉物件名稱,列舉類,列舉的序數等屬性,在使用列舉的時候會增加程式的可讀性,增加程式碼可維護性,並且不容易導致程式錯誤
優點:列舉是限定有限可能值的一種手段,使用列舉可以降低程式出錯的機率,並可以提高程式碼的可讀性與可維護性
缺點:Android官方不建議使用enums,佔用記憶體多Android中當你的App啟動後系統會給App單獨分配一塊記憶體。App的DEX code、Heap以及執行時的記憶體分配都會在這塊記憶體中。使用列舉Enums,DEX size記憶體增加是直接定義靜態變數的13倍之多
執行效果圖:
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button button; //宣告列舉的型別 public enum MyColor{ RED, BLUE, GREEN } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getColor(); } }); } private void getColor() { MyColor color0 = MyColor.RED; switch (color0){ case RED: Log.e("TAG","紅色"); break; case BLUE: Log.e("TAG","藍色"); break; case GREEN: Log.e("TAG","綠色"); break; default: Log.e("TAG","未知色"); break; } for (MyColor myColor : MyColor.values()){ Log.e("TAG","列舉物件--"+myColor); Log.e("TAG","列舉物件的序數--"+myColor.ordinal()); Log.e("TAG","列舉物件的字串--"+myColor.name()); Log.e("TAG","列舉類--"+myColor.getDeclaringClass()); } } }