我有一个带有elements - [10, 20, 30]的ArrayList collection
当我使用
(collection).toArray(new Integer[0])一切都很好。
但有时我必须将UnmodifiableRandomAccessList collection转换为数组。

所以当我使用相同的代码时:
(collection).toArray(new Integer[0])我收到一个异常:
java.lang.ArrayStoreException
at java.util.ArrayList.toArray(ArrayList.java:407)
at java.util.Collections$UnmodifiableCollection.toArray(Collections.java:1034)在这种情况下,如何正确转换集合?是否有任何集合类型不可知的toArray()方法实现(例如,在Apache commons)?
发布于 2017-07-29 14:55:50
抛出以指示已尝试将错误类型的对象存储到对象数组中。例如,下面的代码生成一个ArrayStoreException:
Object x[] = new String[3];
x[0] = new Integer(0);https://docs.oracle.com/javase/7/docs/api/java/lang/ArrayStoreException.html
发布于 2017-07-29 14:55:39
您始终可以通过Stream将任何类型的集合转换为数组。
Integer[] intArray = collection.stream().toArray(Integer[]::new);https://stackoverflow.com/questions/45386285
复制相似问题