3

我不喜欢下面的代码的外观,我想知道如何使用三元运算符来做到这一点:

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”选项。

所以我可能错过了一些东西。它是什么?

4

1 回答 1

6

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

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

您只需要将条件的另一只手也设为数组。您可以将其重构为两个(本地)常量以提高可读性。

于 2012-04-20T16:39:05.307 回答