我需要从一个方法返回两种类型的值
一个是Integer
,另一个是List<someClass>
。
尝试使用
Map<String, Object> test = new HashMap<>();
// save the data
test.put("myList", list);
test.put("counter", 12);
// And read later like
Integer counter = test.get("counter");
List<someClass> myList = test.get("myList");
但是投射总是在Eclipse/声纳中发出警告/错误。
因此,我尝试只实现一个接口,以获得一个具有所需属性类型的对象。
private interface theList {
List<someCLass> myList;
Integer counter;
}
但我不认为这是interfaces
在java中的使用。我不想在任何类中实现方法或扩展此接口。
我需要的是有一种类型的元素,我可以在其中存储我需要的任何类型的信息,并在以后读取它,就像我们在javascript中处理对象一样
我只是不想为此创建另一个类或文件。
我可以使用什么结构?
使用Tuples
从方法返回多个值。元组只是一系列对象,它们不一定以任何方式相互关联。
简单实现示例:
public class Tuple<K, V> {
private final K first;
private final V second;
public Tuple(K first, V second){
this.first = first;
this.second = second;
}
public K getFirst() {
return first;
}
public V getSecond() {
return second;
}
}
public Tuple<Integer, List<SomeClass>> method() {
return new Tuple<>(1, new ArrayList<SomeClass>());
}
元组的良好实现是Apache Commons Lang中的Pair或ImmutablePair。可能是有用的SpringTuples实现和文档。