【发布时间】:2011-08-15 20:48:14
【问题描述】:
我有以下存储对象数组列表的类。
public class Test {
private List<Object[]> list = new ArrayList<Object[]>();
public void addList(Object... obj) {
list.add(obj);
}
public void addList(List<Object> lst) {
list.add(lst.toArray());
}
}
当我调用以下内容时,会调用重载方法addList(Object... obj),但我希望调用addList(List<Object> lst)。我该怎么做?
public class Main {
public static void main(String[] args) {
Test testObj = new Test();
List<String> myStrings = new ArrayList<String>();
myStrings.add("string 1");
myStrings.add("string 2");
myStrings.add("string 3");
// The variable argument method is called but this is a list!
testObj.addList(myStrings);
}
}
【问题讨论】:
-
您应该考虑放弃
List<Object[]>存储系统。无论您的数据是什么样的,将其建模为类并使用这些类将比尝试推理一堆Objects 容易得多。
标签: java overloading variadic-functions