Клас/метод на полезност

Класът на полезност е помощен клас със статични променливи и статични методи, които изпълняват конкретен списък от свързани задачи.

Нека да разгледаме примери за стандартни класове на полезност:

java.lang.Math Този клас, който може да извършва много различни математически изчисления, ни дава някои математически константи.
java.util.Масиви Класът съдържа различни методи за работа с масиви (като сортиране и търсене в тях). Този клас също има статична фабрика, която ни позволява да разглеждаме масивите като списъци.
java.lang.System Този клас реализира методи за работа със системата. Най-често го използваме за показване на текст на конзолата. За да направим това, препращаме към статикатанавънпроменлива, която съхранява обект PrintStream , и извикване на неговия метод println ( System.out.println ).

Можем и сами да създадем полезен клас: за да направим това, просто създаваме клас със статичните публични методи, от които се нуждаем. Но не забравяйте, че трябва да имате основателна причина да създадете полезен клас. Например, може би трябва да използвате един и същ метод or набор от методи за изпълнение на една задача (като сложно изчисление) в няколко различни класа.

Нека да разгледаме пример за полезен клас — класът Paths .

Клас пътеки

Този клас се състои само от един статичен метод за получаване , който има два варианта с различни списъци с параметри.

Аргументите, които можем да предадем на метода get са:

get(първи низ, низ... още) Цял път or списък с имена на директории и (or) file в последния аргумент.
get(URI uri) URI.

Този помощен клас решава проблема с преобразуването на път (под формата на низ) or URI в Path . Вече проучихме Path и разбираме защо имаме нужда от него и How можем да работим с него.

Както се случва, често имаме работа с пътища под формата на низове or URI. Това е мястото, където можем да използваме методите на помощния клас Paths .

Нека да разгледаме примери:

Пример Коментирайте

Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
                    
Предаваме на метода get String (пътя към file) и получаваме Path . След това можем да работим с него според нуждите.

Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
                    
Път може да бъде получен и от URI.

Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
                    
Посочваме последователността от имена на директории и името на file, чийто път е необходим.

Но тук има едно предупреждение. С пристигането на 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);
}
    

Този помощен клас може да бъде обявен за остарял, така че instead of това трябва да използваме Path.of.

Преди След

Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
                    

Path path =
Path.of("C:\\Users\\User\\Documents\\MyFile.txt");
                    

Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
                    

Path path = Path.of(URI.create("file:///Users/User/Code/MyClass.java"));
                    

Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
                    

ath path = Path.of(System.getProperty("user.home"),"documents", "document.txt");