这个类的值为什么改变呢?

wren4255 2012-06-07 02:52:54

SelectionCondGroup tempGroup = outboundConditionInformation.getSelectionCondGroup();
tempGroup.setSelectionCondGroupNo("1"); //为什么执行这个语句后,outboundConditionInformation中的SelectionCondGroupNo也变为"1"了



outboundConditionInformation 类中有 SelectionCondGroup

...全文
159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sffx123 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
public class javatest{
public static void main(String args[]){

String w="1";
String ww="2";
ww=w;
ww="3";

System.out.println("w="+w);
}
}



ww和w也是引用一个对象啊
[/Quote]楼主显然对引用认识有误区。

String w="1";//生成一个String引用w,指向字符串"1"
String ww="2";//生成一个String引用ww,指向字符串"2"
ww=w;//把w引用指向的对象赋值给ww,这是ww跟w引用指向同一个对象"1"
ww="3";//把引用ww重新指向了字符串"3",但是w引用没有改变还是指向的"1"
System.out.println("w="+w);//输出"1"
楼主问的问题是两个引用指向同一个对象了,其中任意一个引用,修改对象的具体数值,对象值就被改变了,但是如果你把这个引用从新指向别的对象,那肯定改变不了原来对象的数据。
wren4255 2012-06-08
  • 打赏
  • 举报
回复
public class javatest{
public static void main(String args[]){

String w="1";
String ww="2";
ww=w;
ww="3";

System.out.println("w="+w);
}
}



ww和w也是引用一个对象啊
qybao 2012-06-07
  • 打赏
  • 举报
回复
SelectionCondGroup tempGroup = outboundConditionInformation.getSelectionCondGroup();
getSelectionCondGroup()直接返回outboundConditionInformation中的SelectionCondGroup的话就是这个效果,因为这样的tempGroup和outboundConditionInformation中的SelectionCondGroup引用的是同一个对象
sffx123 2012-06-07
  • 打赏
  • 举报
回复
应该是两个引用指到同一个对象导致的。
  • 打赏
  • 举报
回复
指针!
wren4255 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 code_readonly 的回复:]
tempGroup 就是 : outboundConditionInformation中的SelectionCondGroup的应用
[/Quote]



public class javatest{
public static void main(String args[]){

String w="1";
String ww="2";
ww=w;
ww="3";

System.out.println("w="+w);
}
}


结果为w=1 而不是3啊
code_readonly 2012-06-07
  • 打赏
  • 举报
回复
tempGroup 就是 : outboundConditionInformation中的SelectionCondGroup的应用

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧