如何在java中使用我自己的自定义类加载器调用FileUtils.listFilesAndDirs()方法?

时间:2014-05-14 13:21:45

标签: java object dynamic casting classloader

当我尝试使用自己的类加载器调用FileUtils.listFilesAndDirs()方法时,它会返回原始Object。但我必须将Retun值存储在Collection中。我将如何输入它?在正常情况下,FileUtils.listFilesAndDirs()返回java.io.File的迭代器。

FileUtils.listFilesAndDirs()在commons.io-2.4.jar中可用

我使用以下代码来调用此方法

        MyLoader c=new MyLoader();
        Class cls=c.loadClass("org.apache.commons.io.filefilter.DirectoryFileFilter");
        IOFileFilter directory=(IOFileFilter)cls.getField("DIRECTORY").get(null);
        cls=c.loadClass("org.apache.commons.io.FileUtils");
        File folder = new File(filePath);

        Collection<File> files=(Collection<File>)cls.getMethod("listFilesAndDirs", new Class[]{File.class,IOFileFilter.class,IOFileFilter.class}).invoke(null, new Object[]{new File(filePath), new NotFileFilter(TrueFileFilter.INSTANCE), directory});

建议我使用自定义类加载器访问此方法。

0 个答案:

没有答案