我在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;
}
最佳答案
使用map
和toTypedArray()
:
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/