Kotlin enum classes
Để khai báo một enum class ta sử dụng keyword enum
:
Ở đây mỗi enum constant (NORTH, SOUTH, WEST, EAST) là một object. Các enum constant được phân cách nhau bởi dấu ,
Initialization
Mỗi enum constant được khởi tạo với 1 hằng số rgb
kiểu Int
.
Anonymous Classes
Mỗi enum constant cũng có thể khởi tạo anonymous class
của riêng nó
Ví dụ như constant WAITING định nghĩa một anonymous class
của nó và override
lại function signal()
. Nếu chú ý bạn có thể thấy dấu ;
, dấu này có tác dụng phân cách giữa các enum constant và các định nghĩa thành phần member(như variable
, function
) của enum class.
Working with Enum Constants
Giống như trong Java, enum class trong Kotlin có các method để list ra danh sách các enum constant và lấy enum constant bằng tên của nó.
Từ Kotlin 1.1 trở đi, ta có thể truy cập vào các constant trong enum class bằng generic way
. Ta sử dụng 2 function enumValues<T>()
và enumValueOf<T>()
:
Mỗi enum constant đều có 2 propery:
name
giữ tên của enum constant và ordinal
giữ thứ tự của enum constant trong enum class.