我想知道,为什么将 File
的 Arraylist
更改为数组会出现问题。
public static void main(String[] args) {
List<File> pl = new ArrayList<File>();
pl.add(new File ("C:\\folder"));
String[] k;
k = pl.toArray(new String[pl.size()]);
System.out.println(k);
}
在上面的一个简单示例中,我将得到:
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.ArrayList.toArray(Unknown Source)
at Main.main(Main.java:25)
第二个问题:我必须传递 Arraylist 的大小吗?因为这两个版本都适用于字符串数组列表:
k = pl.toArray(new String[pl.size()]);
k = pl.toArray(new String[] {});
最佳答案
你有一个 File
对象列表,你不能把它们放在一个 String
数组中,你需要以某种方式显式转换它们(例如通过调用 File#getName()
)。最方便的方法可能是使用 Stream
:
k = p1.stream().map(File::getName).toArray(String[]::new);
关于java - Java中数组的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53793885/