我正在设计一个类的 API 函数,它将返回一个数组供客户端使用。但我不太确定是否应该将其作为返回值或将其作为函数的参数。请参见下文:
方法一:
MyObject[] getMyObject() {... return someObject;}
方法二:
void getMyObject(MyObject[] someObject) {...//assign value to someObject[index]};
在 Android API 中,我发现返回 List<MyObject>
是很常见的。或Set<MyObject>
。这是否表明方法一更好?那么Java中这两种方法各有什么优缺点呢?
更新:在方法 II 中,我的意思是为 someObject[index] 赋值,而不是 someObject。我的问题不是关于“Java 是否传递引用或值”。这只是简单地比较两种可行的做事方式。
最佳答案
数组的大小不可调整。因此,使用方法 1,您可以创建一个大小合适的新数组并将其返回。使用方法 2,如果传入的数组大小错误,您就会陷入困境。
Java 没有引用传递。因此,在方法 2 中将某些内容分配给 someObject
不会对调用者执行任何操作。您只能更改 someObject
的元素。
关于Java 返回数组与按引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477739/