Java 9: Try-With-Resources Aprimorado para Código Mais Limpo
A instrução try-with-resources é uma instrução try com um ou mais recursos devidamente declarados. Recurso é um objeto que deve ser fechado quando não for mais necessário. O try-with-resources garante que cada recurso seja fechado após o término. Qualquer objeto implementando java.lang.AutoCloseable ou java.io.Closeable pode ser usado como recurso.
Antes do Java 9, recursos deviam ser declarados antes do try ou dentro do try. Exemplo usando BufferedReader como recurso:
Tester.java (Java 7/8)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
public class Tester {
public static void main(String[] args) throws IOException {
System.out.println(readData("test"));
}
static String readData(String message) throws IOException {
Reader inputString = new StringReader(message);
BufferedReader br = new BufferedReader(inputString);
try (BufferedReader br1 = br) {
return br1.readLine();
}
}
}
Saída
test
Precisávamos declarar br1 dentro do try. No Java 9, não precisamos mais declarar br1; o seguinte programa dá o mesmo resultado:
Tester.java (Java 9+)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
public class Tester {
public static void main(String[] args) throws IOException {
System.out.println(readData("test"));
}
static String readData(String message) throws IOException {
Reader inputString = new StringReader(message);
BufferedReader br = new BufferedReader(inputString);
try (br) {
return br.readLine();
}
}
}
Saída
test
Agora variáveis final ou effectively final podem ser usadas diretamente no try-with-resources, reduzindo boilerplate.
Java
- Dominando Tratamento de Exceções em Java: Try, Catch, Finally e Resources
- Método Java String length(): Como Obter o Tamanho de uma String (Exemplo)
- Dominando Java String.indexOf(): Localizando Substrings e Exemplos Práticos
- Entendendo Java String.charAt(): Sintaxe, Tipo de Retorno, Exceções e Exemplo Prático
- Dominando o Método compareTo() do Java String: Sintaxe, Casos de Uso e Exemplos Práticos
- Método Java String.contains(): Como Verificar Substrings – Exemplos Práticos
- Dominando Java String.endsWith(): Como Verificar Sufixos de String com Exemplos
- Lendo Arquivos em Java com BufferedReader – Guia Prático com Exemplos
- Algoritmo Insertion Sort em Java: Exemplo Claro e Guia Passo a Passo
- Selection Sort em Java: Exemplo Passo a Passo e Código Completo