我有一个名为FileUtils
的类中实现的代码,它听起来像。 它所做的只是通过一个文件并将该文件夹下的每个文件夹放在ArrayList
中,所以它就像在任何将返回内容的文件上调用.listFiles()
方法一样。如何在调用自己的方法中使用ArrayList
private static ArrayList<File> classFileList = new ArrayList<File>();
public static ArrayList<File> listFiles(File dir) {
if (!dir.isDirectory() || !dir.exists())
return null;
for (File file : dir.listFiles()) {
classFileList.add(file);
listFiles(file);
}
return classFileList;
}
上面的代码工作正常,但它需要类变量ArrayList
工作。
如果我在方法内部创建了ArrayList
,那么每次调用它时它都会被重置,并且只返回最后一个文件。但是随着我现在的设置,如果我多次调用该方法,那么列表中包含每个文件的重复项。
要么使用方法变量,要么在调用它之后重置类变量。
是的,这是我发布后立即想到的,我只是做了它,它工作得很好,所以我认为这是一个很好的答案,但是当您在for循环中调用时,需要传递classFileList并将其作为参数。只要你做了编辑,我会接受这个答案 – Totalllyrandomguy 2014-12-13 19:38:19
@Tallalllyrandomguy完成,谢谢指出。其实我在这台电脑上没有java,所以在代码中写了代码。复制粘贴你的问题的那一部分。 :-) – Panther 2014-12-13 19:43:21
您还需要传递文件 - listFiles()有2个参数!另外,如果您将classFileList作为参数传递,则该方法可能应该具有void返回类型。 – 2014-12-13 19:47:20