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