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

问题描述 投票:1回答:3

无论环境如何,如何创建一个表示no path的java.nio.Path?

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

我正在寻找的是,比使用null值,是否存在一种更安全的方式表示空路径/无效路径。

java nullpointerexception nio is-empty
3个回答
3
投票

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

  • 如果尝试从方法返回路径,则可以使用Optional<Path>并返回Optional.empty()表示没有路径。
  • [如果这是类中的字段并且该类实现了某些行为,则可以使用null object pattern来实现另一个具有相同接口的类,该接口不执行任何操作(如果没有路径,则您的应用程序需要执行的操作) 。

2
投票

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

优点是,您将强迫任何调用此函数的人检查是否存在无效的Path。与返回null不同,后者在调用方忘记检查的情况下,稍后将使程序崩溃并带有NullPointerException


0
投票

如果要避免使用null,请使用Optional,然后可以测试是否存在null。

© www.soinside.com 2019 - 2024. All rights reserved.