簡體   English   中英

為什么調用返回列表,打印空列表的方法?

[英]Why does my call to a method that returns a list, print an empty list?

當我從中調用System.out.Println()時,返回列表的方法displayFilesInDirectory()打印整個列表。 但是, 調用 displayFilesInDirectory的方法打印“ []”作為列表內容。

public  void dropCompleted(DragEvent event) {
    Dragboard db = event.getDragboard();
    boolean success = false;

    List list = new ArrayList();
    String tableName;
    List listOfDirectories;
    tableName = (String) playList.getSelectionModel().selectedItemProperty().getValue();

    if (db.hasFiles()) {
        event.acceptTransferModes(TransferMode.COPY);

        for (Object file : db.getFiles()) {
            File directories = (File) file;
            listOfDirectories = (displayFilesInDirectory(directories));

            System.out.println("Calling displayFilesInDirectory: " + listOfDirectories);
        }
        success = true;
    }

public static List displayFilesInDirectory(File dir) {
    List newList = new ArrayList();

    File[] files = dir.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            displayFilesInDirectory(file);
        } else if (file.isFile()) {
            newList.add(file);
        }
    }
    System.out.println("From displayFileInDirectory()"+newList);
    return newList;
}

如果在目錄中直接沒有文件的目錄中調用它,而僅在該目錄的子目錄中,則displayFilesInDirectory將返回一個空列表,因為對該目錄中目錄的遞歸調用不會將結果列表添加到newList 將該行替換為

newList.addAll(displayFilesInDirectory(file));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM