Java 10 - Inferência de tipo de variável local
JEP 286 - Inferência de tipo de variável local
A inferência de tipo de variável local é uma das mudanças mais evidentes na linguagem disponível do Java 10 em diante. Permite definir uma variável usando var e sem especificar o tipo dela. O compilador infere o tipo da variável usando o valor fornecido. Essa inferência de tipo é restrita a variáveis locais.
Forma antiga de declarar variável local.
String name = "Welcome to tutorialspoint.com";
Nova maneira de declarar variável local.
var name = "Welcome to tutorialspoint.com";
Agora o compilador infere o tipo de variável de nome como String inspecionando o valor fornecido.
Pontos notáveis
-
Nenhuma inferência de tipo no caso de variável de membro, parâmetros de método, valores de retorno.
-
A variável local deve ser inicializada no momento da declaração, caso contrário o compilador não será inferido e lançará um erro.
-
A inferência de variável local está disponível dentro do bloco de inicialização de instruções de loop.
-
Sem sobrecarga de tempo de execução. Como o compilador infere o tipo com base no valor fornecido, não há perda de desempenho.
-
Nenhuma mudança de tipo dinâmico. Uma vez que o tipo de variável local é inferido, ele não pode ser alterado.
-
O código clichê complexo pode ser reduzido usando a inferência de tipo de variável local.
Map<Integer, String> mapNames = new HashMap<>(); var mapNames1 = new HashMap<Integer, String>();
Exemplo
O programa a seguir mostra o uso da Inferência de Tipo de Variável Local em JAVA 10.
import java.util.List; public class Tester { public static void main(String[] args) { var names = List.of("Julie", "Robert", "Chris", "Joseph"); for (var name : names) { System.out.println(name); } System.out.println(""); for (var i = 0; i < names.size(); i++) { System.out.println(names.get(i)); } } }
Saída
Ele imprimirá a seguinte saída.
Julie Robert Chris Joseph Julie Robert Chris Joseph
Java