Classe/metodo di utilità

Una classe di utilità è una classe helper con variabili statiche e metodi statici che eseguono un elenco specifico di attività correlate.

Diamo un'occhiata ad esempi di classi di utilità standard:

java.lang.Math Questa classe, che può eseguire molti calcoli matematici diversi, ci fornisce alcune costanti matematiche.
java.util.Arrays La classe contiene vari metodi per lavorare con gli array (come ordinarli e cercarli). Questa classe ha anche una factory statica che ci permette di visualizzare gli array come liste.
java.lang.System Questa classe implementa metodi per lavorare con il sistema. Molto spesso lo usiamo per visualizzare il testo sulla console. Per fare ciò, facciamo riferimento a staticfuorivariabile, che memorizza un oggetto PrintStream e chiama il relativo metodo println ( System.out.println ).

Possiamo anche creare noi stessi una classe di utilità: per fare ciò, creiamo semplicemente una classe con i metodi pubblici statici di cui abbiamo bisogno. Ma ricorda che dovresti avere una buona ragione per creare una classe di utilità. Ad esempio, forse è necessario utilizzare lo stesso metodo o insieme di metodi per eseguire una singola attività (come un calcolo complesso) in diverse classi.

Diamo un'occhiata a un esempio di una classe di utilità: la classe Paths .

Classe Percorsi

Questa classe consiste in un solo metodo get statico che ha due varianti con diversi elenchi di parametri.

Gli argomenti che possiamo passare al metodo get sono:

get(Stringa prima, Stringa... altro) Un intero percorso o un elenco di nomi di directory e (o) il file nell'ultimo argomento.
get(URIuri) Un URI.

Questa classe di utilità risolve il problema della conversione di un percorso (sotto forma di una stringa) o di un URI in un Path . Abbiamo già esplorato Path e abbiamo capito perché ne abbiamo bisogno e come possiamo lavorarci.

Come accade, abbiamo spesso a che fare con percorsi sotto forma di stringhe o URI. Qui è dove possiamo usare i metodi della classe di utilità Paths .

Diamo un'occhiata agli esempi:

Esempio Commento
Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
Passiamo il metodo get a String (il percorso del file) e otteniamo un Path . Quindi possiamo lavorarci secondo necessità.
Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
Un percorso può anche essere ottenuto da un URI.
Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
Indichiamo la sequenza dei nomi delle directory e il nome del file il cui percorso con necessità.

Ma c'è un avvertimento qui. Con l'arrivo di Java 11, qualsiasi implementazione del metodo get chiama 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);
}

Questa classe di utilità può essere dichiarata deprecata, quindi dovremmo usare invece Path.of.

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