Утилитарный класс и метод
Утилитарный класс — это класс-помощник, содержащий статические переменные и статические методы, которые выполняют определенный перечень задач, объединённых одним смыслом.
Давайте рассмотрим примеры стандартных утилитарных классов:
java.lang.Math | Класс, который может выполнять множество различных математических вычислений, дает нам некоторые математические константы. |
java.util.Arrays | Класс содержит различные методы для работы с массивами (такие как сортировка и поиск). Этот класс также содержит статическую фабрику, которая позволяет просматривать массивы как списки. |
java.lang.System | Класс реализует методы для работы с системой. Чаще всего мы можем его использовать для вывода текста в консоли. Для этого мы обращаемся к статической переменной out, которая хранит в себе объект класса PrintStream, и уже у него вызываем метод println (System.out.println). |
Мы можем и сами создать утилитарный класс: для этого мы просто создаем класс со статическими public методами, которые нам необходимы. Но нужно помнить, что для создания утилитарного класса необходимы весомые причины. Например, необходимость использования одного и того же метода или набора методов, выполняющего единственную задачу (скажем, сложное вычисление) из нескольких различных классов.
Давай рассмотрим пример утилитарного класса — класс Paths.
Класс Paths
Это класс состоит всего из одного статического метода — get — с разными принимаемыми параметрами.
Мы можем передать в метод get:
get(String first, String... more) | Путь целиком, либо перечисление названий директорий и (или) файла в последнем аргументе. |
get(URI uri) | URI. |
Этот утилитарный класс решает задачу преобразования пути (в виде строки) или URI в Path. Path мы уже проходили и понимаем, зачем он нам нужен и как мы с ним далее можем работать.
Часто бывает, что мы имеем дело с путем именно в виде String или URI. Вот тут-то мы и можем воспользоваться методами утилитарного класса Paths.
Давайте рассмотрим примеры:
Пример | Комментарий |
---|---|
|
Передаем в метод get String (путь к файлу) и получаем сформированный Path. Далее мы можем с ним работать. |
|
Path можно так же получить и из сформированного URI. |
|
Указываем последовательно названия директории и файла, к которому нам нужно получить путь. |
Но в самом деле есть один нюанс. С появлением Java 11 версии любая реализация метода get вызывает в себе Path.of.
public static Path get(String first, String... more) {
return Path.of(first, more);
}
public static Path get(URI uri) {
return Path.of(uri);
}
Теперь этот утилитарный класс может быть признан устаревшим, поэтому мы должны использовать именно Path.of для наших целей.
Было | Стало |
---|---|
|
|
|
|
|
|
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ