Я хочу уменьшить объект до его базовых c полей (исходящих из интерфейса):
override fun findBasicById(deliveryAddressId: Long): BasicDeliveryAddress? {
val basicDeliveryAddress = findById(deliveryAddressId) as BasicDeliveryAddress? // returns a DeliveryAddress object
return basicDeliveryAddress // Here I still get the full DeliveryAddress!
}
Однако basicDeliveryAddress
по-прежнему содержит все поля из класса, реализующего интерфейс. Как мне избавиться от всех полей, не объявленных в интерфейсе (в данном случае от объекта-пользователя)?
interface BasicDeliveryAddress {
var street: String
// some other fields
}
data class DeliveryAddress (
override var name: String,
// override all other fields
) : BasicDeliveryAddress {
var user: User? = null
}