在JDK7中,有没有办法在移动文件时使用三元运算符来有条件地使用REPLACE_EXISTING?

时间:2012-04-20 16:33:07

标签: java java-7

我不喜欢下面的代码看起来如何,我想知道如何使用三元运算符来实现它:

if (isIndexed) {
    Files.move(source, destination);
}
else {
    Files.move(source, destination, StandardCopyOption.REPLACE_EXISTING);
}

我期待的东西看起来像:

Files.move(source, destination, isIndexed ? xxxx : StandardCopyOption.REPLACE_EXISTING);

如果我可以使用某种“默认”复制选项,我认为这将是我正在寻找的。但是StandardCopyOption的枚举没有“NONE”选项。

所以我可能会遗漏一些东西。它是什么?

1 个答案:

答案 0 :(得分:6)

这是一个varargs参数,所以你可以通过new StandardCopyOption[0]设置一个空数组。

Files.move(source, destination, isIndexed ? new StandardCopyOption[0] : new StandardCopyOption[] { StandardCopyOption.REPLACE_EXISTING });

你只需要将条件的另一方面作为一个数组。您可以将它重构为两个(本地)常量,以提高可读性。