728x90
Enum Class
- 특정 상태를 지정하는 상수들을 클래스 내부에 고유 값으로 만들어 사용
- 소스코드의 가독성을 높이는데 기여한다.
- 상수 값의 타입 안전성을 보장한다.
enum class EnumTest {
Naver,
Google,
Yahoo,
Daum
}
fun getPortalType(s : String) {
when (s) {
"naver" -> EnumTest.Naver
"google" -> EnumTest.Google
"yahoo" -> EnumTest.Yahoo
else -> EnumTest.Daum
}
}
- 각 열거 자료형은 enum 클래스의 인스턴스이기 때문에 다음과 같이 초기화가 가능하다.
enum class Color(val rgb: Int, val colorName: String) {
RED(0xFF0000, "red"),
GREEN(0x00FF00, "green"),
BLUE(0x0000FF, "blue")
}
With Interface
- 다음과 같이 인터페이스 상속을 통해서도 enum class 선언이 가능하다.
enum class GetLanguage(s: String) : Languages {
JAVA("java") {
override fun getLang(): String = "JAVA"
},
KOTLIN("kotlin") {
override fun getLang(): String = "KOTLIN"
},
PYTHON("python") {
override fun getLang(): String = "PYTHON"
}
}
728x90