JEP 286: Local-Variable Type Inference
JEP 302 Lambda Leftovers
JEP 305 Pattern Matching
JEP 323 Local-Variable Syntax for Lambda Parameters
JEP 325 Switch Expressions
...
URL url = new URL("http://openjdk.java.net/");
URLConnection con = url.openConnection();
Reader reader = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
var url = new URL("http://openjdk.java.net/");
var con = url.openConnection();
var reader = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
//como eu escrevo
var numeroDez = 10;
var usuario = new Usuario();
var minhaLista = List.of("1","2","3","4","5");
//como fica depois de compilado
int numeroDez = 10;
Usuario usuario = new Usuario();
List<String> minhaLista = List.of("1","2","3","4");
//errado
var nomeDoFilho;
nomeDoFilho = pai.getNomeDoFilho();
//certo
var nomeDoFilho = pai.getNomeDoFilho();
//nada disso vai funcionar
var ints = {0, 1, 2};
var appendSpace = a -> a + " ";
var compareString = String::compareTo;
var numbers = List.of("a", "b", "c");
numbers = List.of(1, 2, 3);
//também não vai funcionar
class Pai {
var nomeDoFilho;
public var getNomeDoFilho(){
return this.nomeDoFilho;
}
}
http://openjdk.java.net/projects/amber/
http://openjdk.java.net/jeps/286
http://openjdk.java.net/projects/amber/LVTIstyle.html
https://imasters.com.br/back-end/primeiro-contato-com-var-no-java-10