Kotlin:投射阵列阵列
问题描述:
我想分裂一个由用户输入的字符串。我的代码看起来类似于以下内容:Kotlin:投射阵列<String!>阵列<String>
val aList = Array(5, {Array<String>(2){ " " }})
aList[0] = ArrayList(input.nextLine().split(" ")) // `split` returns a List
但是这会导致以下错误: error: type inference failed. Expected type mismatch: inferred type is ArrayList<String!> but Array<String> was expected
。
经过一番挖掘后,我发现T!
运营商意味着T or T?
。我如何投ArrayList<String!>
到Array<String>
?
答
ArrayList<T>
and Array<T>
are completely different types,所以,从形式上讲,你不能只是演员。
你可以,但是,转换List<T>
到Array<T>
使用.toTypedArray()
:
aList[0] = input.nextLine().split(" ").toTypedArray()