<分区>
这是初学者的问题。
在 JAVA 中,将对象作为参数传递给方法或从方法返回该对象之间有什么区别吗?例如:将 List 作为参数传递并将其填充到方法中还是只允许方法返回列表更好?
我的猜测是它应该没有区别,因为返回了一个引用并且没有复制任何内容。但背后是否有更微妙的东西?
提前致谢
阿尔托伯
<分区>
这是初学者的问题。
在 JAVA 中,将对象作为参数传递给方法或从方法返回该对象之间有什么区别吗?例如:将 List 作为参数传递并将其填充到方法中还是只允许方法返回列表更好?
我的猜测是它应该没有区别,因为返回了一个引用并且没有复制任何内容。但背后是否有更微妙的东西?
提前致谢
阿尔托伯
最佳答案
许多评论似乎误解了你的意思。
我相信你问的是
public void myMethod(List list) {
list.add(new Object());
}
和
public List myMethod() {
List list = new ArrayList();
list.add(new Object());
return list;
}
如果我错了,请纠正我。
没有规则可以说哪个是对的。这完全取决于您希望如何设计程序。后一种方法不允许您使用现有列表,因此可能需要考虑性能问题。
您还可以在从方法返回值时执行方法链接,因此有时您可以同时获取参数和返回值。它的一个变体是一种方法,如果它作为参数传递,它将使用现有的列表,但如果参数为空,则创建一个新的列表。然而,这可能会让调用者感到困惑。
关于JAVA 返回对象或按引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20118594/