KotlinのSealedクラス使いたくて無理をした
Kotlinのsealed classを使いたいと虎視眈々だったんだけど
ついに突っ込んでみた。今回の用途ではそんなにメリットはないけど。
よくある成功or失敗を柔軟にという感じはなくemunの拡張くらいの気持ち。
使ったとこ
Firebase AnalyticsでUser Propertyを設定したかったんだけど、enumで
enum class UserProperty(
val propertyName: String,
val value: String
) {
AREA_KYUSYU("area", "九州),
AREA_SHIKOKU("area", "四国),
...
}
とするのは毎回areaって書かなきゃなのがかっこ悪いなと。
おっ、と思ってsealed class使って見ると
sealed class UserProperty(
val name: String,
open val value: String
) {
abstract class Area(override val value: String) : UserProperty("area", value)
object Kyushu : Area("male")
object Shikoku : Area("female")
...
}
って書けた。コレジャナイ感は否めないけど、こっちのほうが好みなので良しとしよう。
まとめ
もっと活用していこう。あとブログちゃんと書くぞ!(n回目)