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

如何表示空/无效的java.nio.Path,java,nullpointerexception,nio,is-empty,Java,Nullpointerexception,Nio,Is Empty,如何创建表示无路径的java.nio.Path,无论环境如何 我无法调用Path.of()并保证生成的路径指向无效的文件或目录 我要寻找的是,是否有比使用null值更安全的方法来表示空/无效路径。如果希望避免空值,请使用可选,然后可以测试空/存在 如果要避免空值,请使用可选选项,然后可以测试空值/当前值 根据您的用例,有两个选项: 如果试图从方法返回路径,可以使用Optional和returnOptional.empty()表示无路径 如果这是类中的一个字段,并且该类实现了某些行为,则可以使用

如何创建表示无路径的java.nio.Path,无论环境如何

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


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

如果希望避免空值,请使用可选,然后可以测试空/存在

如果要避免空值,请使用可选选项,然后可以测试空值/当前值

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

  • 如果试图从方法返回路径,可以使用
    Optional
    和return
    Optional.empty()
    表示无路径
  • 如果这是类中的一个字段,并且该类实现了某些行为,则可以使用来实现另一个具有相同接口的类,该接口“不做任何事情”(如果没有路径,则应用程序需要做什么)

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

  • 如果试图从方法返回路径,可以使用
    Optional
    和return
    Optional.empty()
    表示无路径
  • 如果这是类中的一个字段,并且该类实现了某些行为,则可以使用来实现另一个具有相同接口的类,该接口“不做任何事情”(如果没有路径,则应用程序需要做什么)

我不会真正尝试创建无效的
路径。它不打算以这种方式使用。
如果您有一个函数可以返回
路径
,但在某些情况下不会返回,那么最好的方法是返回
可选


优点是,您将强制调用函数的人检查没有有效路径的情况。与返回
null
不同,如果调用者忘记检查它,他只会让程序在稍后被
NullPointerException
炸毁。

我不会真正尝试创建无效的
路径。它不打算以这种方式使用。
如果您有一个函数可以返回
路径
,但在某些情况下不会返回,那么最好的方法是返回
可选


优点是,您将强制调用函数的人检查没有有效路径的情况。与返回
null
不同的是,如果调用方忘记检查它,他将在稍后使用
NullPointerException
使程序崩溃。

也许您可以使用/dev/null?是的,这会起作用。但是Windows用户呢?我认为NUL是保留的。我不知道windows有这样的功能。太酷了!另一方面,我认为它是批处理语法的一部分,而不是文件本身。这仍然取决于系统。如果我在我的Linux机器上进行单元测试,当我想在Windows上工作时,我必须更改“无效文件”路径……也许你可以使用/dev/null?是的,这可以。但是Windows用户呢?我认为NUL是保留的。我不知道windows有这样的功能。太酷了!另一方面,我认为它是批处理语法的一部分,而不是文件本身。这仍然取决于系统。如果我在Linux机器上进行单元测试,当我想在Windows上工作时,我必须更改“无效文件”路径。。。