Eclipse e J2SE 5.0

Desde a edição 3.1, o Eclipse inclui suporte completo para as novas funções de linguagem de Java do J2SE 5.0. 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

De forma a programar códigos compatíveis com o J2SE 5.0, precisará do J2SE 5.0 ou do J2SE 6.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 a Correcção Rápida para actualizar o nível de conformidade do projecto:

    Correcção Rápida 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 sintonizar os tipos de avisos e erros de compilador produzidos em cada projecto, utilizando Propriedades > Compilador Java> Erros/Avisos. A secção Tipos genéricos e a secção Anotações contêm opções adicionais para o 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 nova refactorização: Inferir argumentos de tipo genérico pode inferir parâmetros de tipo para todas as referências de tipo numa classe, pacote, ou num projecto inteiro.

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 instâncias parametrizadas diferentes de Lista

A selecção de referência a Lista<Número inteiro> e a utilização de Pesquisa > Referências > Projecto do menu contextual irá destacar os tipos de Lista em todas as quatro linhas:

Pesquisar sem filtros

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

Filtrar Argumentos de tipo incompatível deixa somente referÊncias a tipos que sejam de contribuição compatível com o tipo seleccionado:

Filtro incompatível

Filtrar Argumentos de tipo inexacto deixa somente referências de tipo com a mesma assinatura exacta:

Filtrar inexactos

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:

Sobrepor 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 da correcção rápida no aviso propõe adicionar uma anotação @SuppressWarnings:

SuppressWarnings proposto

A selecção da correcção rápida 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 encaixe automático ou de conversões de desencaixe automático:

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.

Importações estáticas

As importações estáticas permitem utilizar campos e métodos estáticos provenientes de outras classes sem qualificação.

A assistência a conteúdos no editor Java pode sugerir tais membros estáticos e adiciona uma importação estática quando necessário. Para ter tais propostas, configure os favoritos de importação estática na página de preferências Abre a página de preferências de Favoritos de Assistência a conteúdos Java > Editor > Assistência a conteúdos > Favoritos.

Converter o código do J2SE 1.4 para 5.0

O Eclipse proporciona as seguintes ferramentas para ajudar a converter o código do J2SE 1.4 para 5.0: Boa codificação!