Cap 12 Apêndice: mais Java 8 com reflection, JVM, APIs e limitações

12.1: Novos Detalhes na Linguagem (Operador Diamante Melhorado) Tópicos Principais: Operador Diamante (): Introduzido no Java 7 para reduzir código redundante Permite substituir new ArrayList() por new ArrayList() Limitação original: só funcionava na declaração de variáveis Melhorias no Java 8: Inferência de tipos ampliada para contextos adicionais Agora funciona em: Chamadas de métodos Retornos de métodos Argumentos de métodos Casos de Uso: repositorio.adiciona(new ArrayList()) - agora funciona repositorio.adiciona(Collections.emptyList()) - também funciona Não precisa mais de anotações explícitas de tipo Comparação Java 7 vs Java 8: Java 7 exigia: repositorio.adiciona(new ArrayList()); repositorio.adiciona(Collections.emptyList()); Java 8 aceita: repositorio.adiciona(new ArrayList()); repositorio.adiciona(Collections.emptyList()); JEP Relacionado: JEP 101: Generalized Target-Type Inference Link: http://openjdk.java.net/jeps/101 Ver OperadorDiamanteExemplo.java

Apr 26, 2025 - 19:13
 0
Cap 12 Apêndice: mais Java 8 com reflection, JVM, APIs e limitações

12.1: Novos Detalhes na Linguagem (Operador Diamante Melhorado)

Tópicos Principais:
Operador Diamante (<>):

  • Introduzido no Java 7 para reduzir código redundante
  • Permite substituir new ArrayList() por new ArrayList<>()
  • Limitação original: só funcionava na declaração de variáveis

Melhorias no Java 8:
Inferência de tipos ampliada para contextos adicionais
Agora funciona em:

  • Chamadas de métodos
  • Retornos de métodos
  • Argumentos de métodos

Casos de Uso:

  • repositorio.adiciona(new ArrayList<>()) - agora funciona
  • repositorio.adiciona(Collections.emptyList()) - também funciona
  • Não precisa mais de anotações explícitas de tipo

Comparação Java 7 vs Java 8:
Java 7 exigia:

repositorio.adiciona(new ArrayList());
repositorio.adiciona(Collections.emptyList());

Java 8 aceita:

repositorio.adiciona(new ArrayList<>());
repositorio.adiciona(Collections.emptyList());

JEP Relacionado:
JEP 101: Generalized Target-Type Inference
Link: http://openjdk.java.net/jeps/101

Ver OperadorDiamanteExemplo.java