Jukka Siivonen
04/01/2022, 10:19 AMJukka Siivonen
04/01/2022, 10:19 AMdata class ReasonItem private constructor(
    val reason: Reason,
    val notes: String?
) {
    constructor(
        reason: FooReason
    ) : this(reason, null)
    constructor(
        reason: BarReason,
        notes: String
    ) : this(reason, notes)
}Jukka Siivonen
04/01/2022, 10:19 AMJukka Siivonen
04/01/2022, 10:21 AMJoffrey
04/01/2022, 10:23 AMreason as ReasonnotesJoffrey
04/01/2022, 10:24 AMsealed class ReasonItem(open val reason: Reason)
data class FooReasonItem(
    override val reason: FooReason,
) : ReasonItem(reason)
data class BarReasonItem(
    override val reason: BarReason,
    val notes: String,
) : ReasonItem(reason)Jukka Siivonen
04/01/2022, 10:25 AMJoffrey
04/01/2022, 10:26 AM