文件无法转换为文件

时间:2014-07-03 18:31:51

标签: java file type-conversion classcastexception

将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

我不明白为什么会这样。

1 个答案:

答案 0 :(得分:2)

尝试

File[] flist = list.toArray(new File[list.size()]);

OR

File[] flist = list.toArray(new File[]{});

您无法将Object[]投射到File[]

阅读类似帖子casting Object array to Integer array error

的详情