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回目)