将ArrayList转换为Object []之后。然后我尝试将其转换为File [],它会抛出ClassCastException。当我通过Eclipse调试器运行它时,我看到Object []包含两个File对象。
List<File> list = new ArrayList<File>();
list.add(new File("foo.bar")); list.add(new File("foo.bar.bar"));
Object[] objlist = list.toArray();
File[] flist = (File[]) objlist;
运行此命令会抛出以下异常:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.io.File;
at sphinx.file.ResourceGetter.getResources(ResourceGetter.java:37)
at sphinx.test.Test.main(Test.java:13)
Eclipse告诉我:
Name: objlist.[0] Value: java.io.File
Value: objlist.[1] Value: java.io.File
我不明白为什么会这样。
答案 0 :(得分:2)
尝试
File[] flist = list.toArray(new File[list.size()]);
OR
File[] flist = list.toArray(new File[]{});
您无法将Object[]
投射到File[]