Inferência de tipo com var
Use var para inferência de tipo em variáveis locais — menos ruído, mesma segurança.
Comparação de Código
✕ Java 8
Map<String, List<Integer>> map =
new HashMap<String, List<Integer>>();
for (Map.Entry<String, List<Integer>> e
: map.entrySet()) {
// verbose type noise
}
✓ Java 10+
var map = new HashMap<String, List<Integer>>();
for (var entry : map.entrySet()) {
// clean and readable
}
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Menos boilerplate
Não é necessário repetir tipos genéricos complexos em ambos os lados da atribuição.
Melhor legibilidade
Foco nos nomes de variáveis e valores, não nas declarações de tipo.
Ainda seguro em tipos
O compilador infere e impõe o tipo exato em tempo de compilação.
Abordagem Antiga
Tipos explícitos
Abordagem Moderna
Palavra-chave var
Desde o JDK
10
Dificuldade
Iniciante
Suporte JDK
Inferência de tipo com var
Disponível
Amplamente disponível desde o JDK 10 (março de 2018)
Como funciona
Desde o Java 10, o compilador infere os tipos de variáveis locais a partir do lado direito da atribuição. Isso reduz o ruído visual sem sacrificar a segurança de tipos. Use var quando o tipo for óbvio pelo contexto.
Documentação Relacionada