2017-06-19 53 views
3

我想分裂一个由用户输入的字符串。我的代码看起来类似于以下内容: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>

回答

7

ArrayList<T> and Array<T> are completely different types,所以,从形式上讲,你不能只是演员。

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

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