2017-06-19 59 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()