【发布时间】:2013-08-12 01:13:03
【问题描述】:
将 Java ArrayList 转换为 Object[][] 的最简单方法是什么?
例如:
List<MyClass> myList = new ArrayList<MyClass>();
myList.add(myObj1);
myList.add(myObj2);
Object[][] objArray = myList.... How do I convert?
我尝试这样做的原因是使用 DBUtils 的 QueryRunner.batch(String sql, Object[][] params) 方法。
编辑: 有关详细信息,请参见此处: DBUtils QueryRunner.batch()
EDIT2:
我会尽力提供更多信息。
public class MyObj
{
int myInt;
String myString;
}
MyObj obj1 = new MyObj(1, "test1");
MyObj obj2 = new MyObj(2, "test2");
List<MyObj> myList = new ArrayList<MyObj>();
myList.add(obj1);
myList.add(obj2);
Object[] onedArray = myList.toArray(); // Now I have a 1d array of my list of objects.
Object[] objArray = myList.get(0); // How do I convert each object instance into an array of Objects?
// Intended result would be something like this:
new Object[][] { { 1, "test1" }, { 2, "test2" } };
编辑3: 一种可能的解决方案是: 我可以向 MyObj 类添加一个 toObjectArray() 方法。 肯定有更好的方法吗?
public Object[] toObjectArray()
{
Object[] result = new Object[2];
result[0] = this.myInt;
result[1] = this.myString;
return result;
}
谢谢。
【问题讨论】:
-
您希望
objArray的内容是什么? -
正如其他人所说,这没有意义。您需要说明如何将 List 的元素分配到与二维数组结构匹配的两组中。
-
您可以像这样将 List 转换为数组:
myList.toArray(new Object[0]); -
我认为你的问题的 EDIT3 版本的答案要么是“那是糟糕的设计......不要这样做”或“你的问题自己回答,因此是多余的”。无论哪种方式,我都看不到重新打开它的价值。
标签: java apache-commons-dbutils