Spring get出来的东西,修改之后。必须要set回去才变化吗?

安迪 2009-11-30 02:38:18
如题。
java不是值传递吗。如果我做下边操作:

Object b=new Object();
Object a=XXXXX.getXXXX();

a=b;

但是之后我不执行XXXXX.setXXXX(a)的操作。
那么XXXXX.getXXXX()里边的东西和b是一样的吗?

...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
安迪 2010-03-04
  • 打赏
  • 举报
回复
顶一下!这个问题好像不难吧?帮帮兄弟我!
cgcavalier518 2010-03-04
  • 打赏
  • 举报
回复
不一样呀,各自引用的地址都不一样.
安迪 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chdw 的回复:]
a.add只是调用a对象的方法,a的指向没有发生变化

只有在等号左边的赋值语句下才是改变了对象的地址,即a = b;
[/Quote]

那这样的话a是否还会等于XXXXX.getXXXX(); 里边的值呢?
ChDw 2009-11-30
  • 打赏
  • 举报
回复
a.add只是调用a对象的方法,a的指向没有发生变化

只有在等号左边的赋值语句下才是改变了对象的地址,即a = b;
安迪 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chdw 的回复:]
a=b; 这个意思是将 a指向对象b所在的同一地址,对getXXX返回的对象没有任何影响。


其实你可以将Java里面的对象全部看成是指针,a = b 这样改变的是a指向地址。
[/Quote]

谢谢,回答。的确是,但是如果返回的是个list呢?如下边这样:
List a=XXXXX.getXXXX();
a.add(Object b);

这时候a的指向地址也发生变化了吗?

whereusejava 2009-11-30
  • 打赏
  • 举报
回复
引用类型的值就是地址!(学过c的话应该很好理解)
a=b这一步是把b对象的地址复制个a这个引用类型,最后的结果是a,b都指向同一对象
ChDw 2009-11-30
  • 打赏
  • 举报
回复
a=b; 这个意思是将 a指向对象b所在的同一地址,对getXXX返回的对象没有任何影响。


其实你可以将Java里面的对象全部看成是指针,a = b 这样改变的是a指向地址。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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