7

我认为标题说明了一切。我将如何指定 FOLLOW_LINKS?为什么要创建一个只有一个选项的枚举?例如,方法 java.nio.file.Files.getLastModifiedTime(Path, LinkOption...) 将 LinkOption-s 数组作为参数。你必须通过一些东西,但你只能通过一个可用的选项。这让我很惊讶,并想进一步了解它。

4

3 回答 3

3

以下链接是默认行为。即,如果您不指定 NOFOLLOW_LINKS,则链接会被跟踪。

从方法的文档Files.getLastModifiedTime()强调我的):

选项数组可用于指示在文件是符号链接的情况下如何处理符号链接。默认情况下,遵循符号链接并读取链接的最终目标的文件属性。如果选项 NOFOLLOW_LINKS 存在,则不遵循符号链接。

于 2013-11-18T16:29:13.230 回答
1

让我有点困惑的是, Files.exists() 的 LinkOptions 参数是一个 vararg 参数,我没有立即认识到这个事实......你可以把它放在一边。将其设置为 null 将给出异常。

于 2014-11-08T05:24:26.640 回答
1

许多 NIO.2 方法使用可变参数来传递选项,即使只有一个枚举值可用。与仅传递布尔参数相比,这种方法的优点是面向未来。当未来的选项可用时,这些方法签名与 Java 语言的未来变化隔离开来。

引自“OCP Oracle Certified Professional Java SE 11 Programmer II”

于 2020-11-26T13:09:16.373 回答