我想做的是:
-扫描目录
-对于找到的每个文件夹,将其名称添加到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);

10-06 08:46
查看更多