CONTATOS IMEDIATOS COM VAR NO JAVA 10
MATEUS MALAQUIAS
@mmalaquiasdev
Pedreiro de Software na Claro Brasil
@linguagil
@trainingcentr
@soujava
@javabahia
OpenJDK: Project Amber
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
...
Substituindo declarações de variáveis locais por VAR
Antes do JAVA 10...
URL url = new URL("http://openjdk.java.net/");
URLConnection con = url.openConnection();
Reader reader = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
Depois do JAVA 10...
var url = new URL("http://openjdk.java.net/");
var con = url.openConnection();
var reader = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
Java != JavaScript
Java continua sendo uma linguagem fortemente tipada
//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");
Existem algumas restrições no uso do var, mas vamos discutir um pouco sobre isso :)
//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;
}
}
Referências
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
OBRIGADO
POR NÃO
DORMIR
@mmalaquiasdev
CONTATOS IMEDIATOS COM VAR NO JAVA 10
By Mateus Malaquias
CONTATOS IMEDIATOS COM VAR NO JAVA 10
- 236