尝试在java中将对象向下转换为文件

尝试在java中将对象向下转换为文件,java,arraylist,downcast,Java,Arraylist,Downcast,我写了下一段代码: private ArrayList<File> filter() { ArrayList<File> result = _filters.get(0).buildTree(_dir.listFiles()); for (int i=1; i<_filters.size(); i++){ File[] tempDir = result.toArray(); result = _filters.g

我写了下一段代码:

private ArrayList<File> filter() {

    ArrayList<File> result = _filters.get(0).buildTree(_dir.listFiles());

    for (int i=1; i<_filters.size(); i++){
        File[] tempDir =  result.toArray();
        result = _filters.get(0).buildTree(tempDir);
    }

    return result;

}

我的选择是什么?

问题在于阵列的强制转换。不带参数的toArray创建对象数组,因为列表的类型信息在运行时丢失

改变

File[] tempDir =  result.toArray();


问题是数组的类型转换。不带参数的toArray创建对象数组,因为列表的类型信息在运行时丢失

改变

File[] tempDir =  result.toArray();

File[] tempDir =  result.toArray(new File[result.size()]);