Kotlin:将ArrayList <String!>转换为Array <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 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>Array<T>是完全不同的类型 ,所以从形式上来说,你不能只投射。

但是,您可以使用.toTypedArray()List<T>转换为Array<T>

 aList[0] = input.nextLine().split(" ").toTypedArray()