在 kotlin 中如何从 Array<String> 更改为 Array<CharSequence>
in kotlin how to change to Array<CharSequence> from Array<String>
来自一个库模块 returns 一些 Array<Array<String>>
,如下所示:
private val BASIC_ESCAPE_RULE = arrayOf(arrayOf("\"", """), // "
arrayOf("&", "&"),
arrayOf("<", "<"),
arrayOf(">", ">"))
fun getBasicEscapeRule(): Array<Array<String>> {
return BASIC_ESCAPE_RULE.clone()
}
在项目中它依赖于那个库,它还使用另一个库模块来做lookup/translation,它只需要Array<CharSequence>
。
class translator (vararg lookup: Array<CharSequence>) {
... ...
fun translate(content: String) : String {}
}
当尝试使用从第一个库获取的数据调用第二个库的路由时,
翻译器的制作 translator(*getBasicEscapeRule())
出错:
Type mismatch: inferred type is Array<Array<String>> but Array<out Array<CharSequence>> was expected
在第二个库中,它需要使用 CharSequence 进行字符操作。
如何将Array转为Array?
要将 Array<Array<String>>
转换为 Array<Array<CharSequence>>
,您可以使用以下代码:
val src: Array<Array<String>> = TODO()
val result: Array<Array<CharSequence>> =
src.map { array -> array.map { s -> s as CharSequence }.toTypedArray() }.toTypedArray()
来自一个库模块 returns 一些 Array<Array<String>>
,如下所示:
private val BASIC_ESCAPE_RULE = arrayOf(arrayOf("\"", """), // "
arrayOf("&", "&"),
arrayOf("<", "<"),
arrayOf(">", ">"))
fun getBasicEscapeRule(): Array<Array<String>> {
return BASIC_ESCAPE_RULE.clone()
}
在项目中它依赖于那个库,它还使用另一个库模块来做lookup/translation,它只需要Array<CharSequence>
。
class translator (vararg lookup: Array<CharSequence>) {
... ...
fun translate(content: String) : String {}
}
当尝试使用从第一个库获取的数据调用第二个库的路由时,
翻译器的制作 translator(*getBasicEscapeRule())
出错:
Type mismatch: inferred type is Array<Array<String>> but Array<out Array<CharSequence>> was expected
在第二个库中,它需要使用 CharSequence 进行字符操作。
如何将Array转为Array?
要将 Array<Array<String>>
转换为 Array<Array<CharSequence>>
,您可以使用以下代码:
val src: Array<Array<String>> = TODO()
val result: Array<Array<CharSequence>> =
src.map { array -> array.map { s -> s as CharSequence }.toTypedArray() }.toTypedArray()