Tôi bắt đầu thực sự thích sử dụng C # và Java enums trong mã của mình vì một số lý do:
- Chúng an toàn về kiểu hơn nhiều so với số nguyên, chuỗi hoặc tập hợp các cờ boolean.
- Chúng dẫn đến mã dễ đọc hơn.
- Việc đặt enum thành một giá trị không hợp lệ sẽ khó hơn so với int hoặc string.
- Chúng giúp bạn dễ dàng khám phá các giá trị được phép cho một biến hoặc tham số.
- Mọi thứ tôi đã đọc chỉ ra rằng chúng hoạt động tốt như các số nguyên trong C # và hầu hết các JVM.
Tuy nhiên, khung công tác Android có rất nhiều trường hợp cần phải chuyển các loại cờ khác nhau, nhưng không có trường hợp nào trong số chúng dường như sử dụng enum. Một vài ví dụ mà tôi sẽ nghĩ việc sử dụng chúng sẽ có lợi là Toast.LENGTH_SHORT
/ Toast.LENGTH_LONG
và View.GONE
, View.VISIBLE
vv
Tại sao thế này? Enums có hoạt động kém hơn các giá trị số nguyên đơn giản trong Dalvik không? Có một số nhược điểm khác mà tôi không biết?