本问题已经有最佳答案,请猛点这里访问。
在Java中,如何将EDCOX1的0度转换为EDCOX1×1?
检查以下代码:
ArrayList tiendas;
List tiendasList;
tiendas = new ArrayList();
Resources res = this.getBaseContext().getResources();
XMLParser saxparser = new XMLParser(marca,res);
tiendasList = saxparser.parse(marca,res);
tiendas = tiendasList.toArray();
this.adaptador = new adaptadorMarca(this, R.layout.filamarca, tiendas);
setListAdapter(this.adaptador);
我需要用tiendasList的值填充数组tiendas。
arraylist不是数组。tienda[]将是一个数组。
指: </P >
Foo[] array = list.toArray(new Foo[list.size()]);
或: </P >
Foo[] array = new Foo[list.size()];
list.toArray(array); // fill the array
注意,本厂仅用于参考阵列的类型。学院为阵列的基元类型,用传统的方式: </P >
List list = ...;
int[] array = new int[list.size()];
for(int i = 0; i < list.size(); i++) array[i] = list.get(i);
对于第一个表单,我更喜欢list.toArray(new Foo[0]),因为这清楚地表明参数只传递给类型信息,而大小无关。
@不,你错了。如果您使用的是new Foo[0],那么您将创建一个额外的无用数组。检查要验证的源代码。
为什么这不仅仅是江户一二,我无法理解。
@迪德里克是因为list.toArray()返回Object[]而不是Foo[]。
@强权之王,这是令人讨厌的意外事件。我本以为它会做一些简单而显而易见的事情。现在,可怜的开发人员记住了很多Java类型的细节,只是为了从她的ARAYLIST中获得一个数组。:(
"DeEdRek"是Java泛型集合与非泛型集合共享类的一个不幸的副作用。EDCOX1·6的EDCOX1×7是在Java 1或1.1中定义的,返回EDCOX1,4,现在已经太晚了。有点让我希望Java使用不同的集合来像N.NET这样的泛型来避免这种疯狂。
你是对的,但是不要在这里说"检查源代码"和其他答案的评论:关于EDCOX1(9)工作的数组参数