在Kotlin的一行中使用(自定义)项初始化新的arraylist

在Kotlin的一行中使用(自定义)项初始化新的arraylist,kotlin,arraylist,Kotlin,Arraylist,在Kotlin中,我创建了一个扩展函数,用自定义项初始化新的ArrayList,如下所示: fun <T> arrayListFrom(vararg item: T): ArrayList<T> { return item.toMutableList() as ArrayList<T> } 。。。没有创建一个新的空元素,也没有逐个添加所有元素 Kotlin对于集合有很多有用的函数,我无法想象我需要这个扩展来轻松初始化arrayList,但是找不到其他

在Kotlin中,我创建了一个扩展函数,用自定义项初始化新的ArrayList,如下所示:

fun <T> arrayListFrom(vararg item: T): ArrayList<T> {
    return item.toMutableList() as ArrayList<T>
}
。。。没有创建一个新的空元素,也没有逐个添加所有元素

Kotlin对于集合有很多有用的函数,我无法想象我需要这个扩展来轻松初始化arrayList,但是找不到其他简单的方法。我是否错过了一些有用的Kotlin函数?

arrayListOfitems

所以你可以这么做

arrayListOfMyCustomItem1,MyCustomItem2

arrayListOfitems

所以你可以这么做


arrayListOfMyCustomItem1,MyCustomItem2

arrayListOf?顺便说一句,这不是一个扩展函数。它只是一个函数。你怎么知道呢。toMutableList返回一个ArrayList?合同中没有规定,所以不能保证。即使cast现在对您有效,它也可能在Kotlin的未来版本中失败,例如,如果他们找到/编写不同的可变列表实现以返回。是的,不是扩展函数,我错了!gidds说得好,这不是一个很好的解决方案,但现在对我有效。我一直在寻找更好的实现。arrayListOf?顺便说一句,这不是一个扩展函数。它只是一个函数。你怎么知道呢。toMutableList返回一个ArrayList?合同中没有规定,所以不能保证。即使cast现在对您有效,它也可能在Kotlin的未来版本中失败,例如,如果他们找到/编写不同的可变列表实现以返回。是的,不是扩展函数,我错了!gidds说得好,这不是一个很好的解决方案,但现在对我有效。我一直在寻找一个更好的实现。
arrayListFrom(MyCustomItem(1), MyCustomItem(2))