在一个方法如:public Vector getDistinctVector(Vector old,Vector new),如何可以保证 old 不被改写,因为old是从外面传入来的,old本 final只能只初始化的时候给值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把old的取出的值在方法用到时候 clone一下 或new一个 clone出来的是object来的,是不是 newIt = (Vector)old.clone();?如果 Vector newIt = new Vector();newIt = old;再newIt.addElement("sdfdsf");会不会把old改了? 克隆一个后就不会改了,因为克隆是另创建了一个内容一样的Vector,但在内存钟的地址已经变了,所以再传递时(注意是传引用,传值就没这么麻烦了)不会再影响另一个了。 值传递?现在平时一般都没注意是值传递、引用这种理论了:)一般的参数如:pubilc void set(int ¶1,int para2)这样para1可以引用,para2是传值,但对于public void set(Vector vector)这个vector怎样只是传值??? 在声明该方法的时候,对参数进行限制public Vector getDistinctVector( final Vector old,Vector new)加上final关键字 clone也不能完全解决问题,clone仅CLONE了VECTOR自身,但并没有实现深层CLONE,VECTOR里的对象仍然是一样(方法内与方法外)(==) clone也不能完全解决问题,clone仅CLONE了VECTOR自身,但并没有实现深层CLONE,VECTOR里的对象仍然是一样(方法内与方法外)(==)final也不能完全解决问题,final仅不允许修改VECTOR自身,但VECTOR内的对象仍可修改,如果你要安全,可能要自己写CLONE方法,实现深层CLONE如果想完全解决问题, 解决办法:笨的在方法外另外生成一个Vector对象(V2),把原来的Vector(V1)的值copy过去,参数使用的时候V1,方法使用完毕用V2替换掉V1封装一下,就可以安全地使用了 有用过 NetBeans Platform的同学没? j2se如何设置所有字体的颜色 求高手给个linux下的正则表达式 Double 引用传递问题? 再帖一下我的问题,希望有人解答 我这有本Thingking JAVA中文第二版要卖,有想法的进来看看 如何读取"存储不用等号连接的键值对"的文件? 如何自动识别并消除字符串最后一个字符? 菜鸟跪求各们高手给个说法 一个界面问题,快来拿分 关于JDialog 如何得到一个ResultSet的行数?
newIt = old;再
newIt.addElement("sdfdsf");会不会把old改了?
这样para1可以引用,para2是传值,但对于public void set(Vector vector)这个vector怎样只是传值???
public Vector getDistinctVector( final Vector old,Vector new)
加上final关键字
clone仅CLONE了VECTOR自身,但并没有实现深层CLONE,
VECTOR里的对象仍然是一样(方法内与方法外)(==)
clone仅CLONE了VECTOR自身,但并没有实现深层CLONE,
VECTOR里的对象仍然是一样(方法内与方法外)(==)final也不能完全解决问题,
final仅不允许修改VECTOR自身,但VECTOR内的对象仍可修改,如果你要安全,可能要自己写CLONE方法,实现深层CLONE
如果想完全解决问题,
在方法外另外生成一个Vector对象(V2),把原来的Vector(V1)的值copy过去,
参数使用的时候V1,方法使用完毕用V2替换掉V1封装一下,就可以安全地使用了