当我尝试使用自己的类加载器调用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});
建议我使用自定义类加载器访问此方法。