Android 添加方法如何适用于列表<;E>;在kotlin中键入val

Android 添加方法如何适用于列表<;E>;在kotlin中键入val,android,list,kotlin,Android,List,Kotlin,我有一个变量,比如 val itemList:List<String> = ArrayList() itemList.add("One") itemList.add("Two") val itemList:List=ArrayList() 项目列表。添加(“一个”) 项目列表。添加(“两个”) 我怎样才能在kotlin做到这一点呢 val itemList:List<String> = ArrayList() 支持添加和删除元素的元素的常规有序集合 演示 val

我有一个变量,比如

val itemList:List<String> = ArrayList()
itemList.add("One")
itemList.add("Two")
val itemList:List=ArrayList()
项目列表。添加(“一个”)
项目列表。添加(“两个”)

我怎样才能在kotlin做到这一点呢

val itemList:List<String> = ArrayList()
支持添加和删除元素的元素的常规有序集合

演示

 val itemList:MutableList<String> = ArrayList()
    itemList.add("One")
    itemList.add("Two")
val itemList:MutableList=ArrayList()
项目列表。添加(“一个”)
项目列表。添加(“两个”)
试试这段代码

class UserActivity : AppCompatActivity() {
val itemList= ArrayList<String>()
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    itemList.add("One")
    itemList.add("Two")
}
class用户活动:AppCompatActivity(){
val itemList=ArrayList()
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
项目列表。添加(“一个”)
项目列表。添加(“两个”)
}
}有几个选项:

val itemList: List<String> = arrayListOf<String>().apply {
    add("One")
    add("Two")
}
// no need for .add method anymore!
val itemList:List=arrayListOf().apply{
加上(“一”)
添加(“两个”)
}
//不再需要。添加方法!
另一种选择:

val itemList: MutableList<String> = mutableListOf()
// or
val itemList = mutableListOf<String>()

// now you have `.add()` function
val itemList:MutableList=mutableListOf()
//或
val itemList=mutableListOf()
//现在有了“.add()”函数

您通常应该更喜欢不可修改的列表,而不是可修改的列表。例如,在Java中,您只能使用
Collections.unmodifiableList
并在尝试进行修改时获得运行时异常。使用Kotlin,您可以将其转换为编译时验证。

是的,但是add方法在这里不起作用,它给出了编译时errorlistOf(“一”、“二”)立即给出了初始化列表,但在这种情况下,我将无法添加元素runtime@BrijeshJoshi检查我的答案如果你想走Kotlin的路,最好使用高阶接口,在您的情况下是可变列表,它可以修改列表,如果您需要不可变列表使用列表。因此,您的行应该是val list:MutableList=ArrayList(),您的解决方案有效。谢谢你。但在这种情况下,我无法将变量的类型保持为List@BrijeshJoshi,您不应该将类型保留为
List
,它应该是Kotlin中的
MutableList
,因为
List
是一个只读接口,不公开变异函数。请参阅和。为我提供一个解决方案,使我可以保留要列出的变量类型。我将接受您的建议answer@hotkey多谢各位much@BrijeshJoshi没有办法“保留要列出的变量类型”并添加元素。
val itemList: List<String> = arrayListOf<String>().apply {
    add("One")
    add("Two")
}
// no need for .add method anymore!
val itemList: MutableList<String> = mutableListOf()
// or
val itemList = mutableListOf<String>()

// now you have `.add()` function