【发布时间】:2013-01-27 00:36:34
【问题描述】:
我有时(实际上,经常)发现自己使用单元素数组从一个方法返回多个值。像这样的:
public static int foo(int param1, int param2[], String param3[])
{
// method body
....
// set return values
param2[0] = <some value>;
param3[0] = <some value>;
return <some value>;
}
这是一种不好的做法吗? (好像是因为我的一些朋友说他们2秒都不知道它在做什么!)
但我首先使用它的原因是因为它看起来最接近 C++ 中的 pass-by-reference。而且C++ 并没有劝阻这种做法,所以...
但如果这真的是一种错误的做事方式,知道如何以干净的方式重写它吗?
谢谢
【问题讨论】:
-
我认为您的代码中有错字 - 您将
some value分配给param2[0]两次。如果这真的是你在做什么,那么我不知道它是如何工作的...... -
对象就是为此而生的:封装几个有意义的字段,连贯性
-
仅表示“一些价值”。这是一个语法描述。当然并不表示它的两次出现应该具有相同的“值” -
有很多更好的方法来模拟在Java中通过引用传递。
-
@jahroy 你提到的更好的方法是什么?你能举几个例子吗?谢谢
标签: java