kotlin enumを使った安全な実装
ある特定の値しか扱わない場合はEnumクラスを利用しましょう。 特にチーム開発をする場合はEnumを利用することでより安全な実装にすることができます。
Enumの書き方
enum class Sex(val rawValue: String) {
Male("male"),
Female("female"),
TransGender("transGender");
}
例えばユーザーの性別を Enum の Sexクラス として持たせておくことで、 分岐処理の際に安全かつ、可読性の高いコードになります。
when(user.sex) {
Sex.Male -> {
// todo
}
Sex.Female -> {
// todo
}
Sex.TransGender -> {
// todo
}
}
値からEnumの初期化
値から初期化をする場合は以下の様に constructor を用意することで、 わかりやすい初期化が可能になります。
enum class Sex(val rawValue: String) {
Male("male"),
Female("female"),
TransGender("transGender");
companion object {
fun init(type: String) : Sex? = when(type) {
"male" -> ReserveResist
"female" -> UserCreate
"transGender" -> TransGender
else -> null
}
}
}
利用する時は以下の様になります。 独自constructorを作らなかった場合の初期化と比べると断然分かりやすいですね。
// 独自constructorで初期化
val sex = SexType.init("male")
// 公式的な初期化
val sex = SexType.values().filter { "male" == it.rawValue }.first()
0 コメント