260 likes | 387 Views
Java 5 - Novidades. Gerente de Tecnologia – Vitor Costa. Novidades. Tipos genéricos; Autoboxing/unboxing; Enhanced for Loop; Covariância; Tipos enumerados; Static Imports; Annotations (Metadata); Argumentos variáveis; Leituras e escritas formatadas; Outras novidades. Tipos Genéricos.
E N D
Java 5 - Novidades Gerente de Tecnologia – Vitor Costa
Novidades • Tipos genéricos; • Autoboxing/unboxing; • Enhanced for Loop; • Covariância; • Tipos enumerados; • Static Imports; • Annotations (Metadata); • Argumentos variáveis; • Leituras e escritas formatadas; • Outras novidades...
Tipos Genéricos • JSR-14; • Sintaxe mais limpa – evita casts; • Verificação em tempo de compilação; • Equivalente ao Template em C++, será?
Tipos Genéricos • Antes: • Agora:
Autoboxing/unboxing • JSR-201; • Elimina a conversão manual entre os tipos primitivos e suas “wrapper” classes; • Código mais simples de ler; • Facilita a integração dos tipos genéricos;
Autoboxing/unboxing • Antes: • Agora:
Autoboxing/unboxing • Se A é igual a B e B é igual a C, então A é igual a C; • Não é mais verdade após Java 5;
Enhanced for Loop • JSR-201; • Conhecido como for-each em outras lings.; • Reduz a repetição de código para iterar sobre arrays ou coleções; • Melhor usado com tipos genéricos;
Enhanced for Loop - array • Antes: • Agora:
Enhanced for Loop - coleção • Antes: • Agora:
Enhanced for Loop • Não substitui os loops onde é necessário a utilização de um contador; • Não se aplica às iterações onde se deseja remover ou substituir os elementos; • Pode ser mais lento quando usado em conjunto com coleções muito grandes; • Suporte do “Enhanced for Loop” a qualquer coleção: java.lang.Iterable<E>;
Covariância • Parte da JSR-14 (tipos genéricos); • Capacidade de uma subclasse sobrescrever um método trocando seu tipo de retorno por uma subclasse do tipo de retorno original;
Tipos Enumerados • JSR-201; • Permite criação de tipos enumerados diretamente na linguagem (sem ter que recorrer a padrões); • Adiciona um novo termo às palavras reservadas: enum;
Static Imports • JSR-201; • Importa as funções e variáveis públicas estáticas de outra classe; • Substitui o “Constant Interface Antipattern”; • Pode facilitar o uso destas funções e variáveis, mas não devemos abusar;
Static Imports • Antes: • Agora:
Annotations (Metadata) • JSR-175; • Permite que você defina e use seus próprios tipos de anotação; • Podem ser acessadas via reflexão; • Não alteram a semântica do programa, mas pode afetar como o programa é tratado por ferramentas e bibliotecas; • Programadores típicos nunca precisarão definir um tipo Annotation;
Argumentos Variáveis • JSR-65; • Permite a definição de métodos com número de argumentos variáveis; • Elimina a necessidade de empacotar listas em um array; • Só poder ser utilizado como última variável em um método;
Leituras e escritas formatadas • JSR-51; • Facilidades para leitura e escrita de textos formatados; • Leitura: Scanner, evolução do StringTokenizer; • Escrita: printf em Java;
Leituras e escritas formatadas • Escrita: • Leitura:
Outras Novidades... • Utilitário para programação concorrente; • RMI: não necessita mais do rmic; • Algumas adições na API JDBC; • Muitas melhorias no desempenho: http://java.sun.com/performance/reference/whitepapers/5.0_performance.html • StringBuilder e StringBuffer;
Java 5 - Novidades Gerente de Tecnologia – Vitor Costa