Clasa/metoda de utilitate

O clasă de utilitate este o clasă de ajutor cu variabile statice și metode statice care efectuează o listă specifică de sarcini conexe.

Să ne uităm la exemple de clase de utilitate standard:

java.lang.Math Această clasă, care poate efectua multe calcule matematice diferite, ne oferă câteva constante matematice.
java.util.Arrays Clasa conține diverse metode de lucru cu matrice (cum ar fi sortarea și căutarea acestora). Această clasă are, de asemenea, o fabrică statică care ne permite să vedem tablourile ca liste.
java.lang.System Această clasă implementează metode de lucru cu sistemul. Cel mai adesea îl folosim pentru a afișa text pe consolă. Pentru a face acest lucru, ne referim la staticafarăvariabilă, care stochează un obiect PrintStream și îi apelează metoda println ( System.out.println ).

De asemenea, putem crea o clasă de utilitate noi înșine: pentru a face acest lucru, pur și simplu creăm o clasă cu metodele publice statice de care avem nevoie. Dar amintiți-vă că ar trebui să aveți un motiv bun pentru a crea o clasă de utilitate. De exemplu, poate că trebuie să utilizați aceeași metodă sau același set de metode pentru a efectua o singură sarcină (cum ar fi un calcul complex) în mai multe clase diferite.

Să ne uităm la un exemplu de clasă de utilitate — clasa Paths .

Clasa de căi

Această clasă constă dintr-o singură metodă get statică care are două variante cu liste de parametri diferite.

Argumentele pe care le putem transmite metodei get sunt:

get(String first, String... mai mult) O cale întreagă sau o listă de nume de directoare și (sau) fișierul din ultimul argument.
get(URI uri) Un URI.

Această clasă de utilitate rezolvă problema conversiei unei căi (sub formă de șir) sau URI într-o cale . Am explorat deja Calea și am înțeles de ce avem nevoie de el și cum putem lucra cu el.

După cum se întâmplă, adesea avem de-a face cu căi sub formă de șiruri de caractere sau URI. Aici putem folosi metodele clasei de utilitate Paths .

Să ne uităm la exemple:

Exemplu cometariu

Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
                    
Trecem metodei get un String (calea către fișier) și obținem un Path . Apoi putem lucra cu el după cum este necesar.

Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
                    
O cale poate fi, de asemenea, obținută dintr-un URI.

Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
                    
Indicăm succesiunea numelor de director și numele fișierului a cărui cale este necesară.

Dar există o avertizare aici. Odată cu sosirea Java 11, orice implementare a metodei get apelează 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);
}
    

Această clasă de utilitate poate fi declarată depreciată, așa că ar trebui să folosim Path.of.

Inainte de După

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");