在kotlin中如何从Array <string>更改为Array <charsequence>

时间:2018-08-07 13:52:37

标签: kotlin charsequence

从一个库模块中,它返回一些Array<Array<String>>,如下所示:

private val BASIC_ESCAPE_RULE = arrayOf(arrayOf("\"", "&quot;"), // " 
        arrayOf("&", "&amp;"), 
        arrayOf("<", "&lt;"), 
        arrayOf(">", "&gt;"))


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操作。

如何将数组转换为数组?

1 个答案:

答案 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()