我正在尝试创建类来执行以下操作: 获取一个文件夹,获取它包含的文件夹,以及主文件夹中的每个文件夹 - 获取其中的文件并将它们分成两组 - 一组是mp4,mkv,vlc和avi类型,另一组是srt类型
我目前的代码是:
Show.class:http://pastebin.com/vZ7ipFJc
Season.class:http://pastebin.com/tqUJ7S9v
Main.class:http://pastebin.com/LaEvuARW
stacktrace引领我到许多不同的地方:
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.ArrayList.toArray(Unknown Source)
at Show.<init>(Show.java:47)
at Main.getShows(Main.java:24)
at Main.setupShowsBox(Main.java:70)
at Main.<init>(Main.java:96)
at Main.main(Main.java:54)
(pastebin中的行与代码中的相同)问题似乎是我将arraylist转换为数组,我不知道是的问题。有什么问题,我该如何解决?
答案 0 :(得分:1)
所以这是造成错误的一行:
List<Season> seasons;
File[] seasonFile;
this.seasonsFile=seasons.toArray(new File[seasons.size()]);
您正在尝试将Season
的列表转换为File
的数组。您可以将File
的列表转换为File
的数组,也可以使用{{1将Season
的列表转换为Season
的数组}}
如果您可以将toArray()
个对象转换为Season
个对象,则可以将其放在File
对象的toFile()
方法中。然后获取文件数组:
Season
答案 1 :(得分:0)
你在Show.java中有第47行:
this.seasonsFile=seasons.toArray(new File[seasons.size()])
seasons
是ArrayList
Season
。 ArrayList#toArray
无法将Season
的负载压缩到File
的数组中。也许你想要this.seasonsFile = seasons.getShows;
?
此外,您不应该遵循方法名称约定的包私有变量名称。这会让所有人感到困惑。