首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arraylist<Object []> to Object[][]

Arraylist<Object []> to Object[][]
EN

Stack Overflow用户
提问于 2014-08-11 00:38:11
回答 2查看 676关注 0票数 1

我正在尝试从一个对象创建一个ArrayList of Object[],执行一些更改,然后使用所做的更改获得一个新的对象。

但是,我得到了这个编译错误:

错误:不兼容类型: Object[]不能转换为对象

在执行此操作时:

代码语言:javascript
复制
protected Object[][] data;
fillData();
ArrayList dlist= new ArrayList<Object[]>( Arrays.asList(data) ); //NO COMPILE ERROR
Object[] example=new Object[2]; //just to use in toArray()

String [] args= {"new data 1","new data 2"};//yeah just a typo thanks Oscar
dlist.add( args ); //Sending String instead of Object is legal thanks Oscar.

data= dlist.toArray( example ); //COMPILER ERROR incompatible...

我使用错误的语句而没有编译器错误:ArrayList dlist= new ArrayList<Object[]>( Arrays.asList(data) );,因为输出是Object[]而不是对象,这正是我想要的,谢谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-11 01:08:00

我试过这段代码并且工作:

代码语言:javascript
复制
Object[][] data = { { "hello", "world" }, { "bye", "world" } };
//convert Object[][] to List<Object[]>
List<Object[]> dlist = new ArrayList<>(Arrays.asList(data) );
for (Object[] o : dlist) {
    System.out.println(Arrays.deepToString(o));
}
//convert List<Object[]> to Object[][]
Object[][] data2 = dlist.toArray(new Object[0][]);
System.out.println(Arrays.deepToString(data2));

另外,Java语言不适用于命令,除非您引用命令行来编译您的文件,但这不在Java编程语言的范围之内。

票数 1
EN

Stack Overflow用户

发布于 2014-08-11 00:43:51

这样做吧:

代码语言:javascript
复制
List<Object[]> dlist = new ArrayList<Object[]>();
for(Object[] i: data) {
    dlist.add(i);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25234379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档