Наличие базового класса и производного класса (здесь упрощенно)
open class BaseClass {
var baseData: BaseData? = null
}
open class DerivedClass : BaseClass {
var drivedData: DerivedData? = null
}
И массив для BaseClass
val list = ArrayList<BaseClass>()
// populated the list with mixed objects of BaseClass and DerivedClass
for (obj in list) {
when (obj){
is DerivedClass -> {}
is BaseClass -> {}
}
}
Это может работать, потому что сначала проверяется, является ли он DerivedClass, а затем проверяется на BaseClass.
Если есть лучший способ без использования порядка проверки?