如何从Java方法返回多个不同的对象?

时间:2011-12-20 22:51:37

标签: java methods

  

可能重复:
  How to return multiple objects from a Java method?

有没有办法从Java方法返回多个不同的对象

例如我想要返回字符串,int,object,.. etc

感谢

3 个答案:

答案 0 :(得分:5)

您可以返回包含结果对象的Map<Class, Object>&#39;用其值映射的类型。

public Map<Class, Object> doSomeStuff(){
  Map<Class, Object> map = HashMap<Class, Object>();
  map.put(String.getClass(), "This is an example");
  map.put(Object.getClass(), new Object());
  //...
  return map;
}

// You can then retrieve all results by
String stringVal = map.get(String.getClass());
Object objectVal = map.get(Object.getClass());

答案 1 :(得分:2)

创建一个新类并返回该类。

//Give this a more descriptive name reflecting what it REALLY is.
public static class ReturnData{
protected String foo
protected int bar

public ReturnData(String foo, int Bar) {
  ...
}
String getFoo() {
  ...
}
int getBar() {
  ...
}

然后在您的方法中使用您想要返回的对象实例化对象

MyMethod(...){
   ...
   ...
   return new ReturnData(foo, bar);
}

中提琴!你同时归还了foo和bar。

答案 2 :(得分:1)

没有明确说明。您可以创建自己的包含eveything的类,并返回该类,或者您可以返回包含所有内容的某种形式的Object数组(Object[])或列表(如ArrayList),但是这是不推荐的。

编辑:你也可以使用上面提到的泛型,这属于你自己上课的类别,我想也会单独提到它。