在groovy中验证集合元素

时间:2014-08-27 23:36:52

标签: groovy

我有一个List<File>,我希望确保每个File元素都是一个目录,如果不是,则抛出异常。

在Java中,我会这样做:

List<File> possibleDirs;
...
for (File possibleDir : possibleDirs) {
    if (!possibleDir.isDirectory()) throw new Exception();
    ...
}

但我想知道在groovy中是否有更好的方法可以做到这一点

1 个答案:

答案 0 :(得分:0)

  

我想知道在groovy中是否有更好的方法可以做到这一点

你有什么好的。您可以使用一些Groovy-isms,例如使用Closure进行迭代:

possibleDirs.each { file ->
    if(!file.isDirectory()) {
        // throw exception...
    }
}

或者...

def allAreDirs = possibleDirs.every { file ->
    file.isDirectory()
}
if(!allAreDirs) {
    // throw exception...
}

我不认为其中任何一个都比你拥有的更好。针对every方法的论点是,只要您知道存在问题,就必须访问上一种方法和您描述的方法的每个文件。

修改

我想你也可以这样做:

if(possibleDirs.find { !it.isDirectory() }) {
    // throw exception...
}