我想从Java方法返回两个对象,并且想知道这样做的好方法是什么?
我能想到的可能的方法是:回报HashMap(因为这两个对象是相关的),或者返回ArrayList的Object对象。
ArrayList
Object
更准确地说,我要返回的两个对象是(a)List对象和(b)相同名称的逗号分隔。
List
我想从一个方法返回这两个对象,因为我不想遍历对象列表以获得逗号分隔的名称(我可以在此方法的同一循环中执行此操作)。
不知何故,返回a HashMap看起来不是很优雅的方式。
HashMap
如果要返回两个对象,通常需要返回一个封装了两个对象的单个对象。
你可以返回这样的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<NamedObject<WhateverTypeYouWant>>
另外:为什么要返回逗号分隔的名称列表而不是List?或者更好的方法是,返回a Map<String,TheObjectType>,键为对象的名称和值(除非你的对象指定了顺序,在这种情况下,a NavigableMap可能就是你想要的)。
a Map<String,TheObjectType>