java中要注意对象作为参数引用返回时,对象本身是否变化了
来源:互联网 发布:网络自制节目有哪些 编辑:程序博客网 时间:2024/06/05 12:47
因为对象参数往往是引用传参形式,所以很多时候,我们往往会通过调用一个函数,然后直接想当然的认为该值已经发生变化,然而,情况并非如此,这得需要看看方法里到底做了些什么,请看下边这个例子:
private Instances SortInterestScore(Instances ins) throws Exception
{
....................//注意调用此方法后,ins已经指向了另外一个空间,故想利用引用改变ins的值注意了,因此,需要添加返回值
(1) ins=weka.filters.Filter.useFilter(ins,addValuesFilter);
(2) ins.instance(i).setValue(j,String.valueOf(sortNum));
.............................
}
如果没有(1),只有(2),那这种情况是成立的,因为直接改了ins对象里的值,对外边有效。然而,如果包含(1)却出意外了,为什么呢,因为ins在方法useFilter中并没有修改,而useFilter是另外开辟空间并将该空间返回给ins,所以,如果把ins看作指针的话,那么它指向的空间已经发生变化,所以对外是无效的。原本以为可以不用返回值就行,然而却大失所望,不得不添加返回值,然后再使用它。
疑问:到这里不免会生出一个疑问,我们知道在C++中垃圾空间回收是需要用户自己处理的,然而在Java中,能够系统自行处理,是方便了很多,然而系统真的会完全了解用户的想法吗?记得上次将一个table控件添加到框架上,然而由于需要多次用到table控件显示,并且每次显示都为其分配了不同的空间,由于未能手动释放,所以造成框架上显示了很多重叠的控件,郁闷了半天,最后才找到问题所在!!
0 0
- java中要注意对象作为参数引用返回时,对象本身是否变化了
- java笔试陷阱:对象引用作为参数传递时陷阱
- Java中接口对象作为参数传递
- .Net中引用型对象作为参数进行传递
- .net中引用传递对象作为参数传递的问题
- R语言-引用函数对象作为参数
- 函数的参数为对象本身和对象的引用【函数参数为引用】
- 对象传参数中引用是否被覆盖的情形
- 学习android JNI的那些事儿--------6. 在java中传入引用数据类型(对象)作为参数
- 添加一个对象到集合中时,集合里面存放的是对象的引用还是对象本身?
- 添加一个对象到集合中时,集合里面存放的是对象的引用还是对象本身?
- 添加一个对象到集合中时,集合里面存放的是对象的引用还是对象本身?
- Java中关于返回引用可变对象常见问题剖析
- 对象作为返回值
- 关于Java对象作为参数传递是传值还是传引用的问题
- Java传递基本类型:值传递,对象作为参数:引用传递
- CComPtr对象作为参数进行 1.值传递 2.引用传递 3.做为返回值的注意事项
- String中返回对象和返回对象引用的对比
- 用python搭建简单的聊天程序
- 网站改版样例
- 动态效果制作
- dyx--纪念一下我死去的智商--膜拜我大T神
- java中对时间,日期,星期,月份的操作(Java中Calendar的使用方法)
- java中要注意对象作为参数引用返回时,对象本身是否变化了
- java编译提示错误的类文件,类文件包含错误的类,请删除该文件或确保该文件位于正确的类路径子目录中
- 能PING 同外网但是无法上网的解决方法
- Markdown编辑器使用说明
- Android中ADT和SDK的关系
- android 匀速旋转动画效果
- SQL Server 原生数据从XML生成JSON数据
- 网络编程(基础知识)
- Markdown编辑器写博客