如何在 kotlin 中将列表转换为数组
How to transform a list to an array in kotlin
我有一个列表
val rewardList: List<Reward>
class Reward(
val nameBefore: String
val amountBefore: Long
)
我想要
val rewardArray: Array<TransReward>
class TransReward(
val nameAfter: String
val amountAfter: Long
)
涉及name mapping
,我想不出将list
更改为array
的好方法。
P.S。 class 设计是系统中的旧代码,因此我无法更改它。
要将 List
转换为 Array
,您可以使用 .toTypedArray()
,但在您的情况下,您不能将 List<Reward>
转换为 Array<TransReward>
,因为 class类型不同
我的解决办法是先把你的Reward
改成TransReward
,然后再用.toTypedArray()
val rewardList: List<Reward>
class Reward(
val nameBefore: String
val amountBefore: Long
){
fun toTransReward(): TransReward = TransReward(
nameAfter = this.nameBefore,
amountAfter = this.amountBefore
)
}
// use it like this
val rewardArray : Array<TransReward> = rewardList.map{ it.toTransReward() }.toTypedArray()
我有一个列表
val rewardList: List<Reward>
class Reward(
val nameBefore: String
val amountBefore: Long
)
我想要
val rewardArray: Array<TransReward>
class TransReward(
val nameAfter: String
val amountAfter: Long
)
涉及name mapping
,我想不出将list
更改为array
的好方法。
P.S。 class 设计是系统中的旧代码,因此我无法更改它。
要将 List
转换为 Array
,您可以使用 .toTypedArray()
,但在您的情况下,您不能将 List<Reward>
转换为 Array<TransReward>
,因为 class类型不同
我的解决办法是先把你的Reward
改成TransReward
,然后再用.toTypedArray()
val rewardList: List<Reward>
class Reward(
val nameBefore: String
val amountBefore: Long
){
fun toTransReward(): TransReward = TransReward(
nameAfter = this.nameBefore,
amountAfter = this.amountBefore
)
}
// use it like this
val rewardArray : Array<TransReward> = rewardList.map{ it.toTransReward() }.toTypedArray()