Ответ от Amazia работает, но вы можете улучшить его, внедрив запечатанный класс, например:
sealed class PaymentMethod {
abstract val code: String?
abstract val caption: String?
data class Card(override val code: String?, override val caption: String?, val icon: String?) : PaymentMethod
data class Currency(override val code: String?, override val caption: String?, val descr: String?) : PaymentMethod
}
Больше информации о закрытых классах в Котлине: https://kotlinlang.org/docs/reference/sealed-classes.html
это позволяет вам сделать исчерпывающую оговорку над списком методов оплаты следующим образом (нет необходимости в другой ветке):
class SpinnerAdapter(var name: List<PaymentMethod>) {
init {
when(name.first()){
is Card -> {
// do something
}
is Currency -> {
// do something
}
}
}
Вы также можете использовать это исчерпывающее значение в потоке, если хотите:
class SpinnerAdapter(var name: List<PaymentMethod>) {
init {
name.map{
when(name.first()){
is Card -> {
// do something
}
is Currency -> {
// do something
}
}
}
}