java - 如何在 Kotlin 中填充 String[] 数组

标签 java android kotlin

我在java中有一个像这样的方法,我想将它转换为kotlin。我在 kotlin 中编写了一个方法,但数组未填充,并且返回空数组。我该如何解决这个问题?提前致谢。

Java代码

private String[] getNameOfPersonalityTpye(List<PersonalityTpye> list){
        String[] s = new String[list.size()];
        for(int i = 0; i < list.size(); i++){
            s[i] = list.get(i).getPersonalityTypeName();
        }
        return s;
    }

Kotlin 代码

private fun getNameOfPersonalityTpye(list: List<PersonalityTpye>): Array<String?>{
        val s=  arrayOfNulls<String>(list.size);
        for(i in list.indices){
            s[i] = list[i].name;
        }
        return s;
    }

最佳答案

使用maptoTypedArray():

private fun getNameOfPersonalityType(list: List<PersonalityType>) = list.map { it.name }.toTypedArray()

我猜是 Type 而不是 Tpye
只需检查之后的尺寸即可。如果为 0 则列表为空。
如果作为参数传递的列表可能包含 null 值,则更改为:

private fun getNameOfPersonalityType(list: List<PersonalityType?>) = list.mapNotNull { it?.name }.toTypedArray()

关于java - 如何在 Kotlin 中填充 String[] 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53738900/

相关文章:

java - VisualVM 和 Java VisualVM 有什么区别?

java - 登录时如何获取当前用户状态和状态? SMACK XMPP

android - java.util.NoSuchElementException : List contains no element matching the predicate

java - 程序化 Servlet 3.0 JSP jsp-property-group 配置

android - 在 WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER 出现错误

android - 我如何启用通过 Webview 下载 PDF

android - 在 Android Chrome 上查看时 block 之间的空间

android - 如何在 Android 上使用 RxJava (+ retrofit2) 执行 3 个以上的并行 http 请求

java - 不幸的是MyApp已停止。我该如何解决?

java - 将运行时异常封装在retun方法上,或者生成异常方法?