从一个库模块中,它返回一些Array<Array<String>>
,如下所示:
private val BASIC_ESCAPE_RULE = arrayOf(arrayOf("\"", """), // "
arrayOf("&", "&"),
arrayOf("<", "<"),
arrayOf(">", ">"))
fun getBasicEscapeRule(): Array<Array<String>> {
return BASIC_ESCAPE_RULE.clone()
}
在项目中,它依赖于该库,并且还使用另一个库模块进行查找/翻译,仅需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进行char操作。
如何将数组转换为数组?
答案 0 :(得分:2)
要将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()