Kotlin 转换列表中具有相同类型的数据对象

Kotlin 转换列表中具有相同类型的数据对象,kotlin,arraylist,Kotlin,Arraylist,我有一个问题,其中一个请求我的结果是您的属性具有相同类型的对象。在这种情况下,我需要将这个主体转换为一个硬币列表 data class Currencies( @SerializedName("abc") val abc: Coins, @SerializedName("bch") val bch: Coins, @SerializedName("bnb") val bnb: Coins, @SerializedName("brl") val brl: Coins, @SerializedNam

我有一个问题,其中一个请求我的结果是您的属性具有相同类型的对象。在这种情况下,我需要将这个主体转换为一个硬币列表

data class Currencies(
@SerializedName("abc")
val abc: Coins,
@SerializedName("bch")
val bch: Coins,
@SerializedName("bnb")
val bnb: Coins,
@SerializedName("brl")
val brl: Coins,
@SerializedName("brzx")
val brzx: Coins,
@SerializedName("bsv")
val bsv: Coins,
@SerializedName("btc")
val btc: Coins,
@SerializedName("btg")
val btg: Coins,
@SerializedName("cfty")
val cfty: Coins,
@SerializedName("crw")
val crw: Coins,
@SerializedName("dash")
val dash: Coins,
@SerializedName("dcr")
val dcr: Coins,
@SerializedName("eos")
val eos: Coins,
@SerializedName("epc")
val epc: Coins,
@SerializedName("etc")
val etc: Coins,
@SerializedName("eth")
val eth: Coins,
@SerializedName("gmr")
val gmr: Coins,
@SerializedName("gnt")
val gnt: Coins,
@SerializedName("iop")
val iop: Coins,
@SerializedName("lcc")
val lcc: Coins,
@SerializedName("ltc")
val ltc: Coins,
@SerializedName("mxt")
val mxt: Coins,
@SerializedName("nbr")
val nbr: Coins,
@SerializedName("omg")
val omg: Coins,
@SerializedName("onix")
val onix: Coins,
@SerializedName("prsp")
val prsp: Coins,
@SerializedName("smart")
val smart: Coins,
@SerializedName("sngls")
val sngls: Coins,
@SerializedName("trx")
val trx: Coins,
@SerializedName("tusd")
val tusd: Coins,
@SerializedName("usdt")
val usdt: Coins,
@SerializedName("xmr")
val xmr: Coins,
@SerializedName("xrp")
val xrp: Coins,
@SerializedName("zec")
val zec: Coins,
@SerializedName("zrx")
val zrx: Coins
)

我的回答是,那么我如何在硬币列表中添加硬币?我接收货币对象并希望在一个回收器视图中显示一个可变的货币列表

您可以使用反射来处理kotlin reflect library所需的所有属性:

data class DataClass(
        val a: Int,
        val b: Int,
        val c: Int,
        val d: Int
)

fun main() {
    val instance = DataClass(1, 2, 3, 4)
    val properties = instance::class.memberProperties
    val allValues = ArrayList<Int>() // This list will contain all values of properties
    for (property in properties) {
        val propertyName = property.name
        val propertyValue = property.getter.call(instance)
        println("$propertyName $propertyValue")
        allValues.add(propertyValue as Int)
    }
}
a 1
b 2
c 3
d 4