Introdução ao Eclipse e J2SE 5.0

A partir do release 3.1, o Eclipse inclui suporte completo para os novos recursos do J2SE 5.0 (codename "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.

Pré-requisitos

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, você precisará utilizar a página de preferências Abre a página de preferências JRE Instalado Java > JREs Instalados para registrá-lo no Eclipse.

Este documento apresenta de modo resumido alguns dos novos recursos de idioma no J2SE 5.0, mas não é um tutorial apropriado para esses recursos. Consulte aqui para obter informações adicionais.

Nível de Compatibilidade com o Compilador

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 e tenha um JRE 5.0. Os novos projetos obterão automaticamente a conformidade com 5.0 ao escolher um JRE 5.0 na primeira página do Abre o assistente de novo projeto Java Assistente de Novo Projeto Java:

Assistente de Novo Projeto

Para converter um projeto J2SE 1.4 em J2SE 5.0, você pode simplesmente:
  1. Verificar se você tem um JRE do J2SE 5.0 instalado.
  2. Começar a utilizar recursos do 5.0 no código.
  3. Quando um erro do compilador for sinalizado, utilize a Correção Rápida para atualizar o nível de conformidade do projeto:

    Correção Rápida para Ativar o J2SE 5.0

Para um controle bem ajustado, o nível de conformidade do compilador pode ser configurado globalmente para um espaço de trabalho (com a página de preferências Abre a página de preferências do compilador Java Java > Compilador) ou individualmente para cada projeto (no 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

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 Strings, e um List<Integer> sempre contém Integers.

Em qualquer lugar onde o Eclipse manipula um tipo não genérico, ele pode manipular um tipo genérico. Além disso, uma nova recriação foi incluída: Inferir Argumentos de Tipo Genérico pode inferir parâmetros de tipo para cada referência de tipo em uma classe, pacote ou em um projeto inteiro.

Chamando Inferir Argumentos de Tipo Genérico

Chamando os produtos de recriação:

Inferir Argumentos de Tipo Genérico Chamado

O Eclipse fornece novas opções ao procurar referências a tipos genéricos. Considere este exemplo:

Exemplo com quatro diferentes instanciações parametrizadas de Lista

A seleção da referência a List<Integer> e o uso de Procurar > Referências > Projeto realçará os tipos de lista em todas as quatro linhas:

Procurar sem filtros

Utilizando o menu Visualização de Procura, os resultados podem ser filtrados:

Incompatível com Filtro deixa apenas referências a tipos que são compatíveis por designação com o tipo selecionado:

Incompatível com Filtro

Filtro Inexato deixa apenas as referências a tipos com a mesma assinatura exata:

Filtro inexato

Anotações

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:

Substituir anotação

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:

Aviso: método privado não utilizado

Chamando a correção rápida nas propostas de aviso, incluindo uma anotação @SuppressWarnings:

SuppressWarnings sugeridos

A seleção da correção rápida inclui a anotação. O compilador do Eclipse respeita a anotação removendo o aviso no foo:

SuppressWarnings inseridos

Enumerações

Enumerações são tipos que são instanciados em tempo de execução por um conjunto de objetos finito e conhecido:

tipo de enum

Novamente, tudo o que pode ser feito para uma classe Java pode ser feito para uma enumeração:

Autoboxing

Autoboxing e auto unboxing permitem sintaxe elegante quando tipos primitivos são designados ou recuperados de referências a Objetos:

autoboxing realçado

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 conversões de autoboxing ou autounboxing como avisos de compilação (utilizando a seção Potenciais Problemas de Programação da página de preferências Abre a página de preferências Erros/Avisos Java > Compilador > Erros/Avisos) ou realçá-las utilizando a coloração da sintaxe (por meio da seção Java > Expressões de Auto(un)boxed da página de preferências Abre a página de preferências Coloração da Sintaxe Java > Editor > Coloração da Sintaxe):

Ativando o realce para autoboxing

Avançado para Loop

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 fornece o modelo do código "foreach" que pode descobrir automaticamente a coleta a ser iterada:

modelo foreach sugerido

Escolhendo os produtos do modelo:

modelo foreach inserido

O Eclipse também fornece um assistente rápido "Converter para Loop for Aperfeiçoado" para fazer upgrade de loops for de estilo 1.4, onde possível.

Outro

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: Boa codificação!