Государственный


Интерфейс Path аналог класса File



бет20/25
Дата05.04.2024
өлшемі4.07 Mb.
#497748
1   ...   17   18   19   20   21   22   23   24   25
Java. Потоки ввода-вывода. Работа с файлами. Кравчук А.С., Кравчук А.И., Кремень Е.В

Интерфейс Path аналог класса File


Замечание.
В общепринятом восприятии, интерфейс обычно должен содержать абстрактные методы и аналогом класса не может быть, т.к. вызвать абстрактный метод невозможно. Однако если методы интерфейса являются исключительно дефолтными и/или статическими, то интерфейс приобретает черты класса.


Path – это интерфейс, переработанный аналог класса File. Работать с ним значительно проще, чем с File:

    • во-первых, из него убрали многие статические методы, и перенесли их в класс Files;

    • во-вторых, в Path были упорядочены возвращаемые значения методов. В классе File методы возвращали то String, то boolean. Таким образом в File разобраться было непросто.

Например, в классе File существует метод getParent(), который возвращает путь для текущего файла в виде строки. Но при этом существует еще метод getParentFile(), который возвращал то же самое, но в виде объекта класса File. Это явно избыточно. Поэтому в интерфейсе Path метод getParent() и другие методы работы с файлами возвращают просто объект Path.


Создание ссылки типа Path


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


К сожалению, возникает терминологическая путаница, т.к. ссылке типа интерфейса необходимо присвоить адрес объекта класса реализующего данный интерфейс, а такого класса нет.
Замечание.
Нельзя создать объект типа Path с помощью кода вида
new Path().

Возникает естественный вопрос, а как объявить и проинициализировать ссылку типа интерфейс в данном случае, т.к. вызвать какой-либо конструктор для инициализации объекта нельзя.


В случае создания ссылки типа Path, нужно воспользоваться его статическим методом of(). Формат создания ссылки:

Path имя = Path.of(путь);




где имя — это имя переменной типа Path; путь — это путь к файлу (или директории) вместе с именем файла (или директории) (Таблица 1).




Достарыңызбен бөлісу:
1   ...   17   18   19   20   21   22   23   24   25




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет