gpt4 book ai didi

android - 在 Kotlin 中将 Array 转换为 Array

转载 作者:行者123 更新时间:2023-12-02 13:12:07 24 4
gpt4 key购买 nike

我有一个用字符串初始化的空值数组。然后我必须将它传递给需要 Array<String> 的函数而不是 Array<String?> .那么我该如何解决这个问题呢?

val list_names = arrayOfNulls<String>(plant_list.size)
for(item in plant_list){ list_names.plus(item.name) }

val myListAdapter = MyListAdapter(activity!!,list_names,list_types,list_images) // list_names must be Array<String>

我还想提一下,在适配器中更改它只会使事情复杂化,所以我想从这里开始。

最佳答案

如果您确定没有 null -values 将在您的可为空数组中,您可以简单地(不安全)强制转换它并且它会起作用,例如:

val myListAdapter = MyListAdapter(activity!!,list_names as Array<String>,list_types,list_images)

如果您有 null那里的值取决于一点。一种方法是首先过滤掉 null -values 并传递结果数组,例如:
list_names.filterNotNull().toTypedArray()
// or in case you have different types in there and want only want a single matching one:
list_names.filterIsInstance<String>().toTypedArray()

但是,如果可以的话:首先尝试省略持有该可为空类型的数组。你不能只过滤掉空值并只收集不可为空的吗?这可能是收集名称为 Array<String> 的最简单和最好的方法。 ,例如:
val list_names = plant_list.mapNotNull { it.name }.toTypedArray()

关于android - 在 Kotlin 中将 Array<String?> 转换为 Array<String>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59664606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com