Classe/método utilitário

Uma classe utilitária é uma classe auxiliar com variáveis ​​estáticas e métodos estáticos que executam uma lista específica de tarefas relacionadas.

Vejamos exemplos de classes utilitárias padrão:

java.lang.Math Essa classe, que pode realizar muitos cálculos matemáticos diferentes, nos fornece algumas constantes matemáticas.
java.util.Arrays A classe contém vários métodos para trabalhar com arrays (como classificá-los e pesquisá-los). Essa classe também possui uma fábrica estática que nos permite visualizar arrays como listas.
java.lang.System Esta classe implementa métodos para trabalhar com o sistema. Na maioria das vezes, usamos para exibir texto no console. Para fazer isso, referenciamos o estáticoforavariável, que armazena um objeto PrintStream e chama seu método println ( System.out.println ).

Também podemos criar nós mesmos uma classe utilitária: para fazer isso, simplesmente criamos uma classe com os métodos públicos estáticos de que precisamos. Mas lembre-se de que você deve ter um bom motivo para criar uma classe utilitária. Por exemplo, talvez você precise usar o mesmo método ou conjunto de métodos para executar uma única tarefa (como um cálculo complexo) em várias classes diferentes.

Vejamos um exemplo de classe utilitária — a classe Paths .

Classe de caminhos

Essa classe consiste em apenas um método get estático que possui duas variantes com listas de parâmetros diferentes.

Os argumentos que podemos passar para o método get são:

get(String primeiro, String... mais) Um caminho inteiro ou uma lista de nomes de diretórios e (ou) o arquivo no último argumento.
get(URI uri) Um URI.

Essa classe de utilitário resolve o problema de converter um caminho (na forma de uma string) ou URI em um Path . Já exploramos o Path e entendemos porque precisamos dele e como podemos trabalhar com ele.

Acontece que frequentemente lidamos com caminhos na forma de Strings ou URIs. É aqui que podemos usar os métodos da classe utilitária Paths .

Vejamos exemplos:

Exemplo Comente
Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
Passamos ao método get uma String (o caminho para o arquivo) e obtemos um Path . Então podemos trabalhar com ele conforme necessário.
Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
Um Path também pode ser obtido de um URI.
Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
Indicamos a sequência dos nomes dos diretórios e o nome do arquivo cujo caminho necessita.

Mas há uma ressalva aqui. Com a chegada do Java 11, qualquer implementação do método get chama 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);
}

Essa classe de utilitário pode ser declarada obsoleta, portanto, devemos usar Path.of em seu lugar.

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