【发布时间】:2013-09-20 06:47:25
【问题描述】:
我正在编写一些 Java 代码,但我有疑问。我有一个循环,沿着 Collection 使用方法修改它的每个对象。问题是,当您将对象传递给方法时,您真正传递的是什么?参考副本?内存地址?这是我的代码:
for(Iterator it = colDesglosesBDI.iterator(); it.hasNext();)
{
DesgloseBDIVO desgloseBDI = (DesgloseBDIVO)it.next();
desgloseBDI = completeDesgloseAgrup(desgloseBDI);
}
方法 completeDesgloseAgrup 返回一个 DesgloseBDIVO 对象,因此我可以用新属性替换旧对象。但也许我可以这样做:
for(Iterator it = colDesglosesBDI.iterator(); it.hasNext();)
{
DesgloseBDIVO desgloseBDI = (DesgloseBDIVO)it.next();
completeDesgloseAgrup(desgloseBDI);
}
在这种情况下,该方法将是无效的并且不返回任何对象。可以这样吗?
问候
【问题讨论】:
-
我会说这取决于
completeDesgloseAgrup方法的作用。可以发一下代码吗?
标签: java call-by-value