一尘不染

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

java

我想从Java方法返回两个对象,并且想知道这样做的好方法是什么?

我能想到的可能的方法是:回报HashMap(因为这两个对象是相关的),或者返回ArrayListObject对象。

更准确地说,我要返回的两个对象是(a)List对象和(b)相同名称的逗号分隔。

我想从一个方法返回这两个对象,因为我不想遍历对象列表以获得逗号分隔的名称(我可以在此方法的同一循环中执行此操作)。

不知何故,返回a HashMap看起来不是很优雅的方式。


阅读 882

收藏
2020-02-26

共1个答案

一尘不染

如果要返回两个对象,通常需要返回一个封装了两个对象的单个对象。

你可以返回这样的NamedObject对象列表:

public class NamedObject<T> {
  public final String name;
  public final T object;

  public NamedObject(String name, T object) {
    this.name = name;
    this.object = object;
  }
}

然后,你可以轻松返回List<NamedObject<WhateverTypeYouWant>>

另外:为什么要返回逗号分隔的名称列表而不是List?或者更好的方法是,返回a Map<String,TheObjectType>,键为对象的名称和值(除非你的对象指定了顺序,在这种情况下,a NavigableMap可能就是你想要的)。

2020-02-26