Java - как представить пустой / недействительный java.nio.Path - PullRequest
0 голосов
/ 20 января 2019

Как создать java.nio.Path, представляющий без пути независимо от среды?

Я не могу позвонить Path.of(<String>) и гарантировать, что полученный путь не будет указывать ни на один допустимый файл или каталог.

Я ищу, если есть более безопасный способ представления пустого / неверного пути, чем использование значения null.

Ответы [ 3 ]

0 голосов
/ 20 января 2019

В зависимости от вашего варианта использования, есть несколько вариантов:

  • Если вы пытаетесь вернуть путь из метода, вы можете использовать Optional<Path> и возвращать Optional.empty(), чтобы обозначить отсутствие пути.
  • Если это поле в классе и этот класс реализует некоторое поведение, вы можете использовать шаблон нулевого объекта для реализации другого класса с тем же интерфейсом, который ничего не делает (что бы ни требовалось вашему приложению) делать, если пути нет).
0 голосов
/ 20 января 2019

Я бы на самом деле не пытался создать недействительный Path.Он не предназначен для использования таким образом.Если у вас есть функция, которая может вернуть Path, но в некоторых случаях это не так, лучший способ - вернуть Optional<Path>.

Преимущество состоит в том, что вы будете заставлять любого, кто вызывает функцию, проверять случай, когда нет действительного Path.В отличие от возврата null, где, если вызывающий забудет проверить его, он просто взорвет программу на NullPointerException позже.

0 голосов
/ 20 января 2019

Если вы хотите избежать нулевых значений, используйте Optional, а затем вы можете проверить наличие нулевых / текущих значений.

...