Feature Java: Unnamed Variables & Patterns
O Java 22, lançado em março de 2024, introduziu diversas novidades na linguagem, entre elas a funcionalidade Unnamed Variables & Patterns (variáveis e padrões sem nome). Essa funcionalidade, proposta no JEP 456, visa melhorar a clareza, legibilidade e manutenabilidade do código Java.
Qual o conceito dessa feature?
Esta feature permite que você declare variáveis locais, parâmetros lambda e parâmetros de exceção sem atribuir um nome a elas. Isso pode ser útil em situações em que a variável não é utilizada ou seu nome não é relevante para a compreensão do código.
Vantagens da utilização
-
Maior clareza do código: Ao omitir nomes irrelevantes, o código se torna mais conciso e fácil de entender, especialmente para quem não está familiarizado com a base de código.
-
Redução de erros: A ausência de nomes desnecessários diminui a chance de erros de digitação e de nomes conflitantes.
-
Melhoria na manutenabilidade: O código se torna mais fácil de manter, pois as variáveis com significado real se destacam e são mais fáceis de identificar.
Exemplos de uso
1 - Loops
var list = List.of("blog", "gaspar", "barancelli");
// < java 21
for (String item : list) {
System.out.println("Declaro a variável item mas não utilizo");
}
// uso da feature com java 22
for (String _ : list) {
System.out.println("Não declaro variável");
}
1 - Lambdas
JButton button = new JButton("Clique aqui");
// < java 21
button.addChangeListener(listener -> {
System.out.println("Usuário clicou no botão");
});
// uso da feature com java 22
button.addChangeListener(_ -> {
System.out.println("Usuário clicou no botão");
});
1 - Tratamento de Exceções
// < java 21
try {
Integer.parseInt("gasparbarancelli.com");
} catch (Exception e) {
// realizo alguma operação mas não faço uso da variável e
}
// uso da feature com java 22
try {
Integer.parseInt("gasparbarancelli.com");
} catch (Exception _) {
System.out.println("Ignoro a exception");
}
1 - Retorno de métodos
var list = List.of("blog", "gaspar", "barancelli");
// < java 21
var item = list.remove(0);
// uso da feature com java 22
var _ = list.remove(1);
Limitações
-
Variáveis sem nome só podem ser usados para variáveis locais, parâmetros lambda e parâmetros de exceção.
-
Não é possível usar variáveis sem nome em campos, argumentos de método ou tipos de retorno.
-
É importante usar essa funcionalidade com cuidado para evitar código confuso ou difícil de entender.
Observações Gerais
-
O uso desta featre deve ser feito com cautela e bom senso.
-
É importante avaliar se a omissão do nome realmente contribui para a clareza e concisão do código.
-
Em alguns casos, utilizar um nome descritivo pode ser mais adequado para facilitar a compreensão.
-
A adoção consciente dessa funcionalidade, em conjunto com outras práticas modernas de programação, pode levar a um código Java mais limpo, expressivo e fácil de manter.
Conclusão
A feature Unnamed Variables & Patterns representa mais um passo na jornada de simplificação do Java. Essa evolução constante demonstra o compromisso da comunidade Java em manter a linguagem relevante e atualizada às demandas do mundo da programação.