对于更具可读性的代码,这更像是一个假设性问题。除了有另一个函数来返回数组之外,有没有更优雅的方式来做这样的事情?我在编写 JUnit 测试时多次遇到过这段代码,这只是一个眼睛疼。我有 10 个函数来生成特定类型的随机数组,而且非常混乱。
public ObjectA getA()
{
return new ObjectA("random", "stuff", "constructor");
}
public void doStuffWithA(ObjectA objs[])
{
// do stuff with loop / array
}
public void main()
{
ObjectA objs[] = new ObjectA[10];
for (int x = 0; x < objs.length; x ++)
objs[x] = getA();
doStuffWithA(objs);
}
也许更干净的东西像:
doStuffWithA(toArray(getA(), 10));
但是传递实际的函数调用似乎是不可能的。即使这样也是可以接受的:
ObjectA objs[] = new ObjectA[10]{getA(), 10};