O Eclipse 3.1 inclui suporte completo para os novos recursos do J2SE 5.0 (nome de código "Tiger"). Uma das conseqüências mais importantes desse suporte é que você pode não notá-lo de maneira nenhuma, tudo o que você espera que funcione para o J2SE 1.4, incluindo edição, compilação, depuração, correções rápidas, recriação, ações de origem, procura, etc., funcionará de maneira transparente com os novos tipos e sintaxe do J2SE 5.0. Neste documento, apresentaremos alguns dos recursos mais interessantes que os usuários do Eclipse encontrarão ao trabalhar com o J2SE 5.0.
Para desenvolver código compatível com o J2SE 5.0, será necessário um J2SE 5.0 JRE (Java Runtime Environment). Se você iniciar o Eclipse pela primeira vez utilizando um J2SE 5.0 JRE, ele será utilizado por padrão. Caso contrário, será necessário utilizar a caixa de diálogo JREs Instalados (Windows > Preferências > Java > JREs Instalados) para registrá-lo no Eclipse.
Este documento apresenta alguns dos novos recursos de idioma no J2SE 5.0 muito brevemente, mas ele não é um tutorial apropriado para esses recursos.
Para utilizar os novos recursos do J2SE 5.0, você deve estar trabalhando em um projeto que tenha um nível de conformidade 5.0 ativado. Novos projetos podem ser marcados facilmente como compatíveis com o 5.0 na primeira página do assistente Novo > Projeto:
Para obter mais controle de ajuste fino, o nível de conformidade do compilador pode ser configurado globalmente para um espaço de trabalho (Windows > Preferências > Java > Compilador) ou individualmente para cada projeto (a partir do menu de contexto do projeto, escolha Propriedades > Compilador Java). Projetos com níveis diferentes de conformidade podem coexistir no espaço de trabalho e depender um do outro. Também é possível fazer um ajuste fino dos avisos e erros do compilador produzidos para cada projeto, utilizando Propriedades > Compilador Java > Erros/Avisos > Opções do J2SE 5.0
Tipos genéricos permitem que os objetos da mesma classe operem de maneira segura em objetos de diferentes tipos.
Por exemplo, eles permitem garantias de tempo de compilação de que um
List<String>
sempre contém String
s, e um List<Integer>
sempre contém Integer
s.
Em qualquer lugar onde o Eclipse manipula um tipo não genérico, ele pode manipular um tipo genérico.
O Eclipse 3.1 fornece novas opções ao procurar por referências a tipos genéricos. Considere este exemplo:
List<Integer>
e o uso
de Procurar > Referências > Projeto
realçará os tipos de lista em todas as quatro linhas:
Incompatível com Filtro deixa apenas referências a tipos que são compatíveis por designação com o tipo selecionado:
Filtro Inexato deixa apenas as referências a tipos com a mesma assinatura exata:
Metadados de conexão de anotações sobre como tipos e métodos Java são utilizados e documentados para a origem Java e podem afetar a compilação ou ser consultados em tempo de execução.
Por exemplo, @Override
disparará um aviso do compilador se o método anotado não substituir um método em uma superclasse:
Tudo o que pode ser feito com um tipo Java, é possível fazer com uma anotação:
Uma anotação muito útil com suporte total no Eclipse é @SuppressWarnings
.
Por exemplo, considere um método privado que não é utilizado atualmente mas que você prefere não excluir:
@SuppressWarnings
:
foo
:
Enumerações são tipos que são instanciados em tempo de execução por um conjunto de objetos finito e conhecido:
Novamente, tudo o que pode ser feito para uma classe Java pode ser feito para uma enumeração:
Autoboxing e auto unboxing permitem sintaxe elegante quando tipos primitivos são designados ou recuperados de referências a Objetos:
Os recursos de manipulação da origem do Eclipse manipulam autoboxing de maneira transparente, fornecendo os tipos corretos para novas variáveis locais e assistentes de código corretos. Para entendimento do código, também é possível sinalizar instâncias de autoboxing ou autounboxing como avisos de compilação (Janela > Preferências > Java > Compilador > Erros/Avisos > Opções do J2SE 5.0 > Conversões de boxing e unboxing) ou realçá-las utilizando coloração de sintaxe (Janela > Preferências > Java > Editor > Coloração de Sintaxe > Java > Expressões Auto(un)boxed):
Para o caso comum de operação em cada elemento de uma matriz ou coleta em turno, o J2SE 5.0 permite uma nova sintaxe de limpeza. O Eclipse 3.1 fornece um gabarito de código "foreach" que pode adivinhar automaticamente a coleta a ser repetida:
O Eclipse 3.1 também fornece uma assistência rápida "Converter em Avançado para Loop" para fazer o upgrade o estilo 1.4 for
loops quando possível.
Todos os outros recursos do J2SE 5.0 são manipulados de maneira flexível pelas ferramentas de edição, procura e código do Eclipse: