A conferência Devoxx terminou há alguns dias. Um participante resumiu o conteúdo importante desta conferência. Ele falou sobre as mudanças importantes no Java 7 da seguinte forma:
1. Suporte para coleções
Código Java 1.Lista lista = new ArrayList();
2.list.add("item");
3.String item = list.get(zero);
4.
5.Definir conjunto = novo HashSet();
6.set.add("item");
7.
8.Mapa mapa = new HashMap();
9.map.put("chave", 1);
10.int valor = map.get("chave");
Lista lista = new ArrayList();
lista.add("item");
String item = list.get(zero);
Definir conjunto = new HashSet();
set.add("item");
Mapa mapa = new HashMap();
map.put("chave", um);
int value = map.get("key"); Agora você ainda pode:
Código Java 1.Lista lista = ["item"];
2. String item = lista[zero];
3.
4.Definir conjunto = {"item"};
5.
6.Mapa mapa = {"chave": um};
7.int valor = mapa["chave"];
Lista lista = ["item"];
String item = lista[zero];
Definir conjunto = {"item"};
Mapa mapa = {"chave": um};
int valor = mapa["chave"];
2. Gerenciamento automático de recursos
Código Java 1.BufferedReader br = new BufferedReader(new FileReader(caminho));
2.tente {
3. return br.readLine();
4.} finalmente {
5.br.close();
6.}
BufferedReader br = novo BufferedReader(novo FileReader(caminho));
tentar {
return br.readLine();
} finalmente {
close();
}
torna-se:
Código Java 1.try (BufferedReader br = new BufferedReader(new FileReader(caminho)) {
2. return br.readLine();
3.}
4.
5. Você pode declarar mais de um recurso para fechamento:
6.
7.tente (
8. InputStream in = new FileInputStream(src);
9. OutputStream out = novo FileOutputStream(dest))
10.{
11. // código
12.}
tente (BufferedReader br = new BufferedReader(new FileReader(caminho)) {
return br.readLine();
}
Você pode declarar mais de um recurso para fechar:
tentar (
InputStream in = new FileInputStream(src);
OutputStream out = novo FileOutputStream(dest))
{
//código
}
3. Melhorado o trecho de tipo de criação de exemplo geral (diamante)
Código Java 1.Map> anagramas = new HashMap>();
Mapa> anagramas = new HashMap>();
torna-se:
Código Java 1.Map> anagramas = new HashMap<>();
Mapa> anagramas = new HashMap<>();
Código Java one.int one_million = one_000_000;
int um_milhão = um_000_000;
5. String pode ser usada no switch
Código Java 1.String s = ...
2. interruptor(es) {
3. caso "quux":
4. processo Quux(s);
5. // queda
6.
7. caso "foo":
8. caso "barra":
9. processFooOrBar(s);
10. pausa;
11.
12. caso "baz":
13. processoBaz(s);
14. // queda
15.
16. padrão:
17. processDefault(s);
18.pausa;
19.}
Sequência s = ...
interruptor(es) {
caso "quux":
processo Quux(s);
// queda
caso "foo":
caso "barra":
processFooOrBar(s);
quebrar;
caso "baz":
processoBaz(s);
// queda
padrão:
processDefault(s);
quebrar;
}
6. Literais binários
Código Java one.int binário = zero b1001_1001;
int binário = zero b1001_1001;
7. Simplificou a chamada de etapas de parâmetros variáveis
O editor gera um aviso de "operação insegura" quando o programador pretende usar varargs não redutíveis e chama uma etapa *varargs* (variável).