2015-12-08 37 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() 
      } 
     })] 

} 
相关问题