序言:我知道使用列表或其他集合来返回结果,但是我必须通过列表来提取结果:参见第二个示例
序言 2:我正在寻找“Java 不支持此功能......”之外的答案
我正在寻找一种方便的方法来从 Java 方法调用中返回多个对象。
有点像在 PHP 中:
list ($obj1, $obj2, ...) foobar();
我真的厌倦了在参数中传递持有者对象,例如:
class Holder {
int value;
}
Holder h1=new Holder();
Holder h2=new Holder();
进而:
o.foobar(h1,h2);
...如果有人想出一种优雅的方式来解决这个问题,将会非常感兴趣。
使用列表
List<String> = foobar();
这样做有两个缺点:
我必须首先在房子的被叫方打包列表:
// this is on the callee side of the house
ArrayList<String> result = new ArrayList<String>
result.add("foo");
result.add("bar");
然后在调用方我必须提取结果:
// This is on the caller side
List<String> result = foobar();
String result1 = result.get(0);
String result2 = result.get(1); // this is not as elegant as the PHP equivalent
此外,假设我想返回不同类型的对象,比如 String、Integer,我将不得不返回一个对象列表,然后强制转换每个对象......不漂亮
谢谢。