如何表示一个空的/无效的 java.nio.Path

How to represent an empty / invalid java.nio.Path

如何创建一个 java.nio.Path 表示 没有路径 无论环境如何?

我无法调用 Path.of(<String>) 并保证生成的路径指向无效的文件或目录。

我正在寻找的是,是否有比使用 null 值更安全的方法来表示空/无效路径。

如果您想避免空值,请使用 Optional,然后您可以测试 null/present。

根据您的用例,有几个选项:

  • 如果您尝试 return 来自方法的路径,您可以使用 Optional<Path> 和 return Optional.empty() 来表示没有路径。
  • 如果这是 class 中的字段并且 class 实现了某些行为,您可以使用 null object pattern 实现另一个具有相同接口的 class "nothing"(如果没有路径,您的应用程序需要做什么)。

我不会真的尝试创建一个无效的 Path。它不打算以这种方式使用。 如果你有一个函数可以 return 一个 Path,但在某些情况下它不会,最好的方法是 return Optional<Path>

优点是您将强制调用该函数的任何人检查没有有效 Path 的情况。与 returning null 不同的是,如果调用者忘记检查它,他只会在稍后用 NullPointerException 使程序崩溃。