我想做的是:
-扫描目录
-对于找到的每个文件夹,将其名称添加到ArrayList中
-将此ArrayList放入Main Class并打印。
这是我的ScanDirs课程:
import java.io.File;
import java.util.ArrayList;
public class ScanDirs {
private ArrayList<String> locations;
public void scan() {
File rootDir = new File("./src/data");
locations = new ArrayList<String>();
for (File f : rootDir.listFiles()) {
String fName = f.getName();
locations.add(fName);
}
}
public ArrayList<String> getScan(){
return locations;
}
}
这是主班:
import java.util.ArrayList;
public class Main {
private static ScanDirs scanObject;
public static void main(String[] args) {
scanObject = new ScanDirs();
ArrayList<String> list = scanObject.getScan();
System.out.println(list);
}
}
我的输出是:null
为什么会这样呢?提前致谢
最佳答案
您没有在代码中的任何地方调用scan()
方法。因此,简单地调用getScan()
将导致未初始化的位置值,即null
。
您可以做的就是在调用scan()
方法之前先调用getScan()
方法,例如:
scanObject = new ScanDirs();
scanObject.scan(); // calling scan method
ArrayList<String> list = scanObject.getScan();
System.out.println(list);