Adrian M
02/01/2018, 1:37 PMViacheslav Petriaiev
02/01/2018, 3:40 PMraulraja
02/01/2018, 4:03 PMViacheslav Petriaiev
02/01/2018, 4:23 PMraulraja
02/01/2018, 4:26 PMsealed class Payment {
// shared behaviors of all payments
}
data class InternationalPayment(val countryCode: String) : Payment()
data class OtherPaymentType(val other: String) : Payment()
Viacheslav Petriaiev
02/01/2018, 4:28 PMViacheslav Petriaiev
02/01/2018, 4:30 PMraulraja
02/01/2018, 4:30 PMPayment
constructor and override them as needed on each of the data types extending Paymentraulraja
02/01/2018, 4:31 PMequals
, hashcode
and others being auto generated and synthetic and only being able to account for the properties declared on the data type.raulraja
02/01/2018, 4:32 PMViacheslav Petriaiev
02/01/2018, 4:34 PMViacheslav Petriaiev
02/01/2018, 4:35 PMraulraja
02/01/2018, 4:35 PMsealed class Payment(val amount: BigDecimal) {
// shared behaviors of all payments
}
data class InternationalPayment(val countryCode: String, override val amount: BigDecimal) : Payment(amount)
data class OtherPaymentType(val other: String, override val amount: BigDecimal) : Payment(amount)
raulraja
02/01/2018, 4:37 PMequals
, hascode
etc are properly implemented derived from the structural shape of each individual data class.araqnid
02/01/2018, 5:15 PMabstract val amount: BigDecimal
property in the Payment class, rather than a constructor parameteraraqnid
02/01/2018, 5:16 PMaraqnid
02/01/2018, 5:16 PMViacheslav Petriaiev
02/01/2018, 5:31 PMaraqnid
02/01/2018, 5:54 PMaraqnid
02/01/2018, 5:54 PMfred.deschenes
02/01/2018, 6:01 PMfred.deschenes
02/01/2018, 6:03 PMViacheslav Petriaiev
02/01/2018, 7:35 PManderson.faro
02/03/2018, 10:42 PManderson.faro
02/03/2018, 10:43 PMorangy
anderson.faro
02/03/2018, 11:05 PManderson.faro
02/03/2018, 11:14 PMasad.awadia
02/03/2018, 11:27 PM