1 . 今天谈集合,这是在开发中遇到的问题这里记录一下(这里用kotlin写):
(1)先定义一个 变量 var list : Mutablelist<String>?= null
在一个方法里面赋值 ,
fun A (list : Mutablelist<String>?) {
this.list = list //这里的list对象是A方法赋值过来的 ,所以这两个list是同一个对象地址
}
(2) 先定义一个变量 val list = mutablelist<String>()
fun A (list : Mutablelist<String>?) {
this.list = list //因为这里是赋值,所以这个this.list对象会变为方法传值过来的对象地址,虽然this.list是new出来的一个新对象
this.list.addAll(list) //这里是addAll 添加值,那么这个对象是new出来的对象而不是 方法A 里面对象地址。
}
总结:这里特别注意,集合里面 的对象不管是赋值来的还是添加来的,里面的对象地址还是不变的,如果要改变那么相关引用这个值都会跟着变,所以对于使用同个对象多出使用要注意了。