Como começar com o Eclipse e o J2SE 5.0

Desde a edição 3.1, o Eclipse inclui suporte total para as novas funções do J2SE 5.0 (nome de código "Tiger"). Uma das consequências mais importantes deste suporte é que poderá nem sequer reparar em nada--tudo o que espera que funcione no J2SE 1.4, incluindo edição, compilação, depuração, ajustes rápidos, refactorizações, acções de origem, pesquisas, etc., vai funcionar da mesma forma com os novos tipos e sintaxe do J2SE 5.0. Neste documento, vamos introduzir algumas das capacidades mais interessantes que os utilizadores do Eclipse vão encontrar ao trabalhar com o J2SE 5.0.

Pré-requisitos

Para programar código em conformidade com o J2SE 5.0, vai precisar de um J2SE 5.0 Java Runtime Environment (JRE). Se iniciar o Eclipse pela primeira vez através da utilização de um J2SE 5.0 JRE, então irá utilizá-lo por predefinição. Caso contrário, será necessário utilizar a página de preferências Abre a página de preferências JREs Instalados Java > JREs Instalados para registá-lo com o Eclipse.

Este documento introduz, de modo sucinto, algumas das novas funções de linguagem no J2SE 5.0, mas não é o guia de iniciação indicado para estas funções. Consulte here para obter mais informações.

Nível de Conformidade do Compilador

Para utilizar as novas funções do J2SE 5.0, o seu projecto tem de ter um nível de conformidade 5.0 activado e um JRE 5.0. Os novos projectos adquirem automaticamente conformidade com o 5.0 sempre que é escolhido um JRE 5.0 na primeira página do Abre o assistente do novo projecto Java Assistente Novo Projecto Java:

Assistente Novo Projecto

Para converter um projecto do J2SE 1.4 existente para J2SE 5.0, pode simplesmente:
  1. Certifique-se que tem um J2SE 5.0 JRE instalado.
  2. Comece a utilizar as funções do 5.0 no seu código.
  3. Quando é sinalizado um erro do compilador, utilize o Ajuste Rápido para actualizar o nível de conformidade do projecto:

    Ajuste rápido para activar o J2SE 5.0

Para um controlo mais ajustado, o nível de conformidade do compilador pode ser definido 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 projecto (a partir do menu contextual do projecto, escolha Propriedades > Compilador Java). Os projectos com níveis de conformidade diferentes podem coexistir no espaço de trabalho e são dependentes entre si. Também pode ajustar os tipos de avisos e erros do compilador produzidos para cada projecto, através da utilização de Propriedades > Compilador Java > Erros/Avisos > Opções do J2SE 5.0

Tipos Genéricos

Os tipos genéricos permitem que objectos da mesma classe funcionem de forma segura em objectos de tipos diferentes. Por exemplo, permitem que seja assegurado que List<String> contenha sempre Strings, e uma List<Integer> contenha sempre Integers.

Onde quer que o Eclipse processe um tipo não genérico, pode processar um tipo genérico: Além disso, foi adicionada uma nova refactorização: Inferir Argumentos de Tipo Genérico pode inferir parâmetros de tipo para cada referência de tipo numa classe, um pacote ou em todo um projecto:

Invocar Inferir Argumentos de Tipos Genéricos

Invocar a refactorização produz:

Invocado Inferir Argumentos de tipo Genérico

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

Exemplo com quatro instanciações com parâmetros diferentes de List

Seleccionar a referência a List<Integer> e utilizar Pesquisar > Referências > Projecto vai destacar os tipos List em todas as quatro linhas:

Pesquisar sem filtros

Ao utilizar o menu da Vista Pesquisa, os resultados podem ser filtrados:

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

Filtro incompatível

Filtro Inexacto deixa apenas as referências de tipo com a mesma assinatura:

Filtro inexacto

Anotações

As anotações anexam metadados sobre a forma como os tipos e métodos Java são utilizados e documentados na origem Java e depois podem afectar a compilação ou ser consultados no tempo de execução. Por exemplo, @Override vai activar um aviso de compilador se o método anotado não sobrepuser um método numa superclasse:

Substituir anotação

Tudo o que puder fazer com um tipo Java, pode fazer com uma anotação:

Uma anotação muito útil com suporte integral no Eclipse é @SuppressWarnings. Por exemplo, considere um método privado que não esteja actualmente a ser utilizado, mas que prefere não eliminar:

Aviso: método privado não utilizado

A invocação do ajuste rápido no aviso propõe adicionar uma anotação @SuppressWarnings:

SuppressWarnings proposto

A selecção do ajuste rápido adiciona a anotação. O compilador do Eclipse respeita a anotação removendo o aviso em foo:

SuppressWarnings inserido

Enumerações

As enumerações são tipos que são instanciados no tempo de execução através de um conjunto conhecido e finito de objectos:

tipo de enumeração

De novo, tudo o que pode fazer a uma classe Java pode ser realizado numa enumeração:

Auto-encaixe

O auto-encaixe ou o auto-desencaixe permite uma sintaxe elegante quando os tipos primitivos são atribuídos ou obtidos das referências de Objecto:

auto-encaixe destacado

As funções de manipulação da origem do Eclipse processam o auto-encaixe de forma semelhante, atribuindo os tipos correctos a novas variáveis locais e a assistências de código correctas. Para compreensão do código, também é possível sinalizar instâncias de conversões de auto-encaixe ou auto-desencaixe como avisos de compilação (utilizando a secçã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 destacá-las, utilizando a coloração de sintaxe (através da secção Java > Expressões de auto-(des)encaixe da página de preferências Abre a página de preferências Coloração de sintaxe Java > Editor > Coloração de Sintaxe):

Activar o destaque para auto-encaixe

Ciclo for melhorado

Num caso comum de funcionamento em cada elemento de uma matriz ou recolha à vez, o J2SE 5.0 permite uma sintaxe nova e mais clara. O Eclipse fornece um modelo de código "foreach" que adivinha automaticamente a colecção a ser iterada:

modelo foreach proposto

Escolher o modelo produz:

modelo foreach inserido

O Eclipse fornece também uma assistência rápida "Converter para ciclo melhorado for" para actualizar os ciclos de estilo 1.4 for nos casos em que é possível.

Outros

Todas as outras funções do J2SE 5.0 são processadas de forma flexível pelas ferramentas de edição, pesquisa e manipulação de código do Eclipse: Boa codificação!