我正在尝试从一个对象创建一个ArrayList of Object[],执行一些更改,然后使用所做的更改获得一个新的对象。
但是,我得到了这个编译错误:
错误:不兼容类型: Object[]不能转换为对象
在执行此操作时:
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[]而不是对象,这正是我想要的,谢谢您的帮助。
发布于 2014-08-11 01:08:00
我试过这段代码并且工作:
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编程语言的范围之内。
发布于 2014-08-11 00:43:51
这样做吧:
List<Object[]> dlist = new ArrayList<Object[]>();
for(Object[] i: data) {
dlist.add(i);
}https://stackoverflow.com/questions/25234379
复制相似问题