我认为标题说明了一切。我如何指定FOLLOW_LINKS?为什么只用一个选项创建一个枚举?例如,方法java.nio.file.Files.getLastModifiedTime(Path,LinkOption ...)将一个LinkOption-s数组作为参数。你必须通过一些东西,但你只能通过一个可用的选项。这令我感到惊讶,并希望了解更多信息。
答案 0 :(得分:3)
以下链接是默认行为。即,如果您未指定NOFOLLOW_LINKS,则会遵循链接。
来自Files.getLastModifiedTime()
方法的documentation(强调我的):
options数组可用于指示在文件是符号链接的情况下如何处理符号链接。 默认情况下,会遵循符号链接并读取链接最终目标的文件属性。如果存在选项NOFOLLOW_LINKS,则不会跟踪符号链接。
答案 1 :(得分:1)
让我感到困惑的是,Files.exists()的LinkOptions参数是一个vararg参数,这个事实我没有立刻认出来......你可能只是把它留下。将其设置为null将给出异常。
答案 2 :(得分:1)
许多NIO.2方法都使用varargs传递选项,即使存在 只有一个枚举值可用。这种方法的优势,而不是仅仅通过一个 布尔参数,是面向未来的。这些方法签名与 当将来有可用的选项时,Java语言将成为现实。
引自“ OCP Oracle认证专业Java SE 11程序员II”