2015-12-08 76 views
3

我正在考慮返回一個包含多個目錄列表的地圖。但是,第一個引起了我一個警告:爲什麼此代碼警告Groovy無法訪問?

def enlistFiles() { 

    return 
     [downloadFolder: downloadFolder.listFiles(new FileFilter() { 
      @Override 
      boolean accept(File file) { 
       return !file.isDirectory() 
      } 
     })] 

} 

「代碼不可達」

爲什麼?

+9

因爲可選的分號,在'return'線換行被解釋爲語句的結束。所以你有兩條語句:一個是「返回」,然後是一個無法訪問的地圖。 – melix

+0

我的頭上慚愧,謝謝! :) – Dims

+1

@melix你應該發佈這個答案。 [媽](http://robertnyman.com/2008/10/16/beware-of-javascript-semicolon-insertion/)! – Will

回答

1

下面第3行的任何內容都不會執行。返回關鍵字後面不應有換行符。 您的代碼應該是:

def enlistFiles() { 
    return [downloadFolder: downloadFolder.listFiles(new FileFilter() { 
      @Override 
      boolean accept(File file) { 
       return !file.isDirectory() 
      } 
     })] 

} 
相關問題