O Que Há de Novo no 3.0

Aqui estão algumas das alterações mais interessantes ou significativas feitas nas ferramentas de desenvolvimento Java para a liberação 3.0 do Eclipse desde a liberação 2.1:

Editor Java

Compactação no editor Java Agora, o editor Java suporta a compactação de regiões de código. O foco em um elemento Java compactado permite visualizar o código oculto:

Captura de tela mostrando importações, tipos internos e corpos de método compactados

Atualmente, as instruções de importação, os comentários, os tipos e os corpos de método podem ser compactados. Se a compactação deve estar ativada em novos editores, ela pode ser configurada na guia Compactação na página de preferência Java > Editor:

Captura de tela mostrando preferência de compactação
A UI do JDT fornece um ponto de extensão para estender o conjunto de compactações disponível.

Realce Avançado Agora, o editor Java pode realçar o código fonte de acordo com sua semântica (por exemplo: campos estáticos, variáveis locais e chamadas de método estático). Quando o realce avançado é ativado por meio da guia de preferências Java > Editor > Sintaxe, as novas opções de realce avançado são exibidas na lista.

Um exemplo do realce avançado.

Há também novas opções para operadores e parênteses de realce, e Itálico é um estilo suportado recentemente.

Visualização de Hierarquia de Tipo Rápida Selecione uma referência de tipo, método, pacote no editor Java e pressione Ctrl+T para ver uma visualização de hierarquia de tipo rápida. Para obter os métodos, consulte todos os subtipos e supertipos que fornecem esse método.

Repita CTRL+T para comutar entre a hierarquia de tipo normal e a visualização de hierarquia de supertipo.

Visualização Estruturada da Hierarquia de Tipo

Contorno Rápido Mostra Membros Herdados O contorno rápido (Origem > Abrir Contorno, Ctrl+O) no editor agora mostra os membros herdados depois de repetir a seqüência de tecla Ctrl+O:

Contorno Rápido

Da mesma maneira para Estrutura Rápida (Ctrl+F3).

Modo de Digitação Inserção Inteligente no Editor Java Agora, o editor Java tem um modo Inserção Inteligente que pode ser comutado por meio de Editar > Modo Inserção Inteligente (Ctrl+Shift+Insert).

No modo Inserção Inteligente, o editor fornece itens adicionais específicos para Java que podem ser configurados na guia de preferências Java > Editor > Digitação. As opções Ponto-e-Vírgula Inteligente e Chave de Abertura Inteligente, por exemplo, movem o sinal de inclusão para o final da linha antes de inserir o ponto-e-vírgula ou a chave de fechamento, respectivamente.

Atualizar Importações ao Colar Copiar ou recortar o código Java também captura informações sobre as declarações de importação que são necessárias para o código copiado. Agora, as importações necessárias são incluídas automaticamente quando o código é colado. Esse recurso pode ser configurado com a definição de preferências Java > Editor > Digitação > Atualizar Importações ao Colar.
Posicionamento de Cursor aprimorado em Nomes Java As ações de 'uma palavra por vez' do editor Java agora respeitam a anotação típica "CamelCase" dos identificadores Java. Por exemplo, a Próxima Palavra no identificador "getFoo" faz uma parada adicional entre "get" e "Foo". O comportamento do cursor para os nomes Java é controlado por uma opção na página de preferência Java > Editor > Navegação.
Novo Formatador de Código

O formatador de código Java tem muitas melhorias a oferecer: a página de preferências Java > Estilo de Código > Formatador de Código permite escolher a partir de perfis existentes, define seu próprio perfil e compartilha-o com outros.

Página de preferências Formatador de Código

O novo formatador é altamente configurável, com mais de 140 opções que abrangem tudo a partir da posição da chave, para agrupar linhas, até a formatação de comentários Javadoc.

Diálogo de edição de perfil Formatador de Código

Formatar Vários Arquivos O comando Formatar também é ativado em projetos Java, pastas de origem e pacotes. Quando chamado, todos os arquivos de origem contidos são formatados de acordo com as configurações do formatador definidas atualmente.
Correção Ortográfica O suporte à correção ortográfica foi incluído no editor Java. Depois de ativá-lo e de especificar um dicionário na página de preferências Java > Editor > Ortografia, os erros ortográficos serão exibidos no editor Java, e as Correções Rápidas correspondentes serão disponibilizadas.

Um exemplo de uma sugestão de correção ortográfica

Opcionalmente, você pode disponibilizar o dicionário para a assistência ao conteúdo. Contudo, não há nenhum dicionário atualmente incluído no Eclipse. O formato exigido é apenas uma lista de palavras separadas por novos caracteres de linha, e as Correções Rápidas permitem incluir novas palavras no dicionário ativo. Contribuições para os dicionários serão bem-vindas.

Página de preferências Ortografia

Comentário de Bloco Uma seleção de texto no editor Java pode ser rapidamente transformada em um comentário de bloco utilizando Origem > Incluir Comentário de Bloco. De modo contrário, o comando Origem > Remover Comentário de Bloco remove o comentário de bloco anexando a posição do cursor.
Comando Comutar Comentário Os antigos comandos Origem > Comentar e Origem> Não Comentar no editor Java foram substituídos pelo comando Origem > Comutar Comentário (Ctrl+/) que não comenta as linhas de origem selecionadas atualmente, se todas elas estiverem comentadas, e comenta-as, caso contrário. (Você pode ligar os atalhos de teclado aos comandos antigos, que ainda estão disponíveis, por meio da página de preferências Workbench > Teclas.)
Assistência ao Conteúdo Incremental Marque Inserir Prefixos Comuns Automaticamente na guia de preferências Java > Editor > Assistência ao Código para utilizar o preenchimento incremental de estilo shell no editor Java. Se os preenchimentos disponíveis não tiverem um prefixo comum, o pop-up de sugestão será exibido.
Marcando Dinamicamente Ocorrências no Arquivo As ocorrências de elemento selecionado podem ser marcadas no editor Java com o novo botão Marcar Ocorrências da barra de ferramentas (Figura do Botão Marcar Ocorrências da Barra de Ferramentas ) ou o comando (Alt+Shift+O).Na página de preferência Java > Editor > Marcar Ocorrências, você pode configurar os elementos a serem marcados.

Marcar Ocorrências

As ocorrências do elemento selecionado são marcadas utilizando as anotações de Ocorrências, cuja apresentação pode ser configurada utilizando a página de preferências Anotação (Workbench > Editores > Anotações).

Quando o elemento selecionado é alterado, as ocorrências marcadas são automaticamente atualizadas. Por padrão, as ocorrências marcadas são persistentes, isto é, permanecem realçadas mesmo quando não há nenhum elemento Java válido na posição atual do sinal de inclusão.

As ocorrências marcadas podem ser rapidamente removidas utilizando o comando de origem Remover Anotações de Ocorrência (Alt+Shift+U).
Realçar Pontos de Saída do Método

Posicionando o cursor no tipo de retorno de um método realça todos os pontos de saída do método. O realce dos pontos de saída pode ser ativado por meio da preferência Java > Editor > Marcar Ocorrências.

Método com pontos de saída realçados

Marcar Locais de Exceções Lançadas Quando uma exceção é selecionada, os locais em que essa exceção é lançada podem ser marcados no Editor Java ativando a ação Procurar > Ocorrências de Exceção. Os locais serão marcados automaticamente se a marcação das ocorrências for ativada por meio da página de preferências Java > Editor > Marcar Ocorrências.

Marcar Itens Lançáveis

Editor Java Mostra Métodos Substituídos A nova anotação Substituir Indicador (consulte a página de preferências Workbench > Editores > Anotações) sinaliza um método que implementa ou substitui outro método. Por padrão, os ícones de substituição ou de implementação são exibidos na régua vertical à esquerda; clique no ícone para navegar para o super método:

Figura com o indicador substituído

Várias Anotações Mostradas no Foco de rollover Quando várias anotações são exibidas na régua do editor de texto, eles são exibidas lado a lado ao focalizá-las. Aviso e ações, tais como correções rápidas, pontos de interrupção de definição e marcadores de inclusão, podem ser acessados separadamente. Essa funcionalidade é desativada por padrão, mas pode ser ativada na guia de preferências Java > Editor > Focos.

Ao focalizar várias anotações em uma régua vertical, um foco de rollover as exibe lado a lado.

Nova Dica de Assistência Rápida Conforme você digita em um editor Java, uma dica da Assistência Rápida (lâmpada elétrica verde) é exibida na margem esquerda quando há uma Assistência Rápida disponível. Utilize Editar > Correção Rápida (Ctrl+1) ou clique na lâmpada elétrica para ver as sugestões. Esse recurso pode ser ativado marcando Lâmpada Elétrica para Assistências Rápidas na guia preferências Java > Editor > Aparência.

Lâmpada elétrica para assistências rápidas

Modo Vinculado para Correções Rápidas Agora, vários Resultados de Correção Rápida são exibidos no modo vinculado (gabarito). Utilize Tab e Shift+Tab depois da chamada da Correção Rápida para navegar entre um tipo de retorno gerado, um nome do método, tipos e nomes de argumento. Exemplos de Correções Rápidas utilizando o modo vinculado:
  • Criar novo método
  • Criar novo campo, parâmetro ou variável local
  • Incluir novo argumento
  • Designar instruções para o novo local ou campo
O modo vinculado oferece sugestões adicionais: nomes, tipos ou argumentos diferentes.

Exemplo de suposição de argumento:

'Incluir Argumento' - correção rápida e resultado no modo vinculado

Exemplo de suposição de exceção:

'Incluir Declaração throws' - correção rápida e resultado no modo vinculado

Suposição de Identificador Aprimorada Ao incluir campos, variáveis ou parâmetros, as correções rápidas tentam supor bons nomes para os novos identificadores. Utilizando o novo recurso de modo vinculado, mais de uma sugestão é oferecida agora.
Correção rápida 'Designar Variável Local' supõe identificadores
Correções Rápidas Aprimoradas para Incompatibilidade de parâmetros Várias correções rápidas Java novas para parâmetros incompatíveis foram incluídas, dentre elas, ofertas para lançar, trocar, incluir, remover argumentos ou parâmetros de método.

Correção Rápida para parâmetros incompatíveis

Nova Assistência Rápida Nova Assistência Rápida foi incluída no editor Java. Tente Ctrl+1 em
  • variáveis para dividir e unir a declaração de variável
  • uma instrução 'if' para converter seu corpo em um bloco ou para incluir um novo bloco 'else'
  • um parâmetro de método para designá-lo a um novo campo
  • uma declaração de método para criar o método em um supertipo
Assistência rápida 'Criar no Supertipo'

Assistência rápida 'Parâmetro para Campo'

Criar Getters e Setters com Assistência ao Código Com exceção da criação de métodos de substituição, a assistência ao código também oferece a criação de getters, setters, construtores padrão e stubs de método. Posicione o cursor no corpo de tipo entre os membros e pressione Ctrl+Space para obter as sugestões que criam um stub de método.

Getter na assistência ao código

Maneiras Rápidas para Criar um Construtor O novo comando Java Origem > Gerar Construtor Utilizando Campos cria um novo construtor que inicializa os campos selecionados. Você escolhe os campos a serem inicializados a partir de parâmetros extras de construtor, cuja ordem é controlada por meio dos botões Para Cima/Para Baixo no diálogo.

Construtor com campos

Agora, o comando Origem > Incluir Construtor de Superclasse exibe um diálogo para que você possa escolher os construtores de superclasse que devem ser inseridos na classe atual. O recurso de assistência rápida ainda pode ser utilizado para inserção sem nenhum aviso.

Depurador Java

Exibe para inspeção/visualização

Agora, os Pop-ups de Avaliação São Utilizados para Todos os Resultados de Visualização e Inspeção.

Pop-up Rápido de Inspeção

Estrutura Lógica

Agora, o depurador Java permite que determinados tipos de Java, incluindo coletas e mapas, sejam exibidos em um formato mais compacto e significativo. Essas estruturas lógicas são controladas por um botão de comutação na visualização Variáveis.
Estrutura lógica

Filtro de Encadeamento do Sistema

Agora, os encadeamentos do sistema são filtrados da Visualização Depuração por padrão. O comando Mostrar Encadeamentos do Sistema no menu drop-down da visualização ativa/desativa o filtro.

Avançar na Seleção em Qualquer Linha

O comando Avançar na Seleção do depurador Java não está mais restrito à linha de execução, atualmente.

Pontos de Interrupção de Preparação de Classe

Os pontos de interrupção podem ser definidos em um evento de preparação de classe. O programa será suspenso quando a classe ou a interface especificada for carregada primeiro pela VM Java.

Ponto de Interrupção de Preparação de Classe

Hyperlinks de Pontos de Interrupção de Exceção

Agora, os pontos de interrupção de exceção podem ser criados diretamente de um rastreio de pilha no console. Clicar no hyperlink que é exibido abaixo do nome da exceção no início de um rastreio de pilha abre um diálogo de propriedades no ponto de interrupção de exceção criado recentemente (ou em um já existente).

Link de ponto de interrupção de exceção na visualização Console

Pontos de Interrupção em Origem Externa

Agora, você pode colocar um ponto de interrupção no código fonte externo (isto é, o código fonte que não está no caminho de classe de construção de um projeto Java). As ações de criação do ponto de interrupção no menu Executar automaticamente criam pontos de interrupção externos sempre que o depurador está exibindo a origem externa.

Reformulações Atualizam os Pontos de Interrupção e as Configurações de Ativação

Agora, os pontos de interrupção e as configurações de ativação são atualizados como uma conseqüência das reformulações do código fonte Java, tais como renomear um projeto Java, um arquivo de origem ou uma declaração de tipo.

Renomeação inclui configurações de ativação Java

Reiniciar Opcional Quando a Substituição do Código Ativo Falha

Quando são feitas alterações na VM Java do host que a substituição do código ativo não suporta, você tem a opção de Reiniciar a VM, além de escolher Continuar ou Concluir.

Diálogo Falha na Substituição de Código Ativo

Argumentos VM Padrão Podem Ser Associados ao JRE

Agora, a página de preferências Java > JREs Instalados permite associar um conjunto de argumentos VM padrão para cada JRE. Esses argumentos serão transmitidos para a VM sempre que ela for utilizada.

Diálogo de Preferências de JRE de Argumentos VM Padrão

Reformulação

Menus Rápidos para Ações de Reformulação e Origem

Os comandos de reformulação e origem podem ser acessados por meio de um menu rápido. Selecione o elemento a ser manipulado no editor Java ou na visualização Java e pressione Alt+Shift+S para o menu de origem rápida ou Alt+Shift+T para o menu de reformulação rápida.

O Menu de Reformulação Rápida

Reformulações Atualizam Referências nos Javadocs Agora, as reformulações Renomear, Mover e Alterar Assinatura de Método também atualizam as referências nos comentários Javadoc. Isso inclui referências mas marcações @see e @link, bem como nas cláusulas @param e @throws.

O diálogo Renomear foi simplificado como uma conseqüência:

Diálogo Renomear Tipo

A opção antiga Atualizar Referências nos Comentários de Javadoc foi compactada em Atualizar Referências. As opções antigas Atualizar Referências em Comentários Regulares e Atualizar Referências nos Literais de Cadeia foram mescladas em Atualizar Correspondência Textual em Comentários e Cadeia.

Reformulação Generalizar Tipo Selecione uma declaração de uma variável, um parâmetro, um campo ou um tipo de retorno de método em um editor Java e escolha Reformulação > Generalizar Tipo.

Generalizar Tipo - Assistente

O assistente mostra a hierarquia de supertipo para a variável. A seleção de um dos tipos disponíveis atualiza a declaração.

Generalizar Tipo - Depois
Reformulação Introduzir Depósito de Informações Selecione uma declaração ou uma chamada de construtor no editor Java e escolha Reformulação > Introduzir Depósito de Informações.

Introduzir Depósito de Informações - Antes

Assistente para Introduzir Depósito de Informações

Um método de depósito de informações estático criado chama o construtor específico, e todas as chamadas para o construtor fornecido são substituídas por chamadas para o novo método de depósito de informações.

Introduzir Depósito de Informações - Depois
Reformulação Introduzir Parâmetro Selecione uma expressão em um editor Java e escolha Reformulação > Introduzir Parâmetro.

Introduzir Parâmetro - Antes

É fornecido um novo parâmetro ao método contido, e a expressão selecionada é copiada para a lista de argumentos de todos os sites da chamada.

Introduzir Parâmetro - Depois

Reformulação Alteração Aprimorada de Assinatura de Método No editor Java, selecione um método e escolha Reformulação > Alterar Assinatura de Método.

Assistente para Alterar Assinatura

Agora, a reformulação
  • também renomeia os parâmetros nos métodos de substituição;
  • atualiza referências nos javadocs;
  • oferece Assistência ao Conteúdo (Ctrl+Space) na coluna de tipo de parâmetro;
  • permite alterar o nome do método;
  • permite alterar as exceções de lançamento.

Além disso, a edição na tabela de parâmetros foi simplificada de forma que você possa utilizar as teclas de navegação padrão (Tab, Shift+Tab, Seta para Cima & para Baixo). A edição pode ser iniciada clicando em uma célula ou pressionando F2 ou Enter.

Extrair Método de Tipos Internos

Para o código Java contido em um tipo de membro anônimo, local ou não estático, agora, a reformulação Extrair Método permite que o novo método seja criado em um tipo externo.

Assistente para Extrair Método

Extrair Método Localiza Fragmentos de Código Duplicados

Agora, Extrair Método localiza fragmentos de código duplicados e ajuda a extraí-los no novo método. Por exemplo, ao extrair a expressão foo(a) + bar(b) do snippet:

Assistente para Extrair Método

o código resultante é:

Assistente para Extrair Método

Ferramentas Java - Geral

Hierarquia de Chamada de Método Você pode abrir uma visualização que mostra uma hierarquia de chamada de método escolhendo Navegar > Abrir Hierarquia de Chamada (Ctrl+Alt+H) no editor Java ou em qualquer visualização Java que mostra métodos.

Visualização Hierarquia de Chamada

Visualização Javadoc Há uma nova visualização Javadoc (Janela > Mostrar Visualização > Outra > Java > Javadoc) que mostra o Javadoc do elemento selecionado no editor Java ou em uma visualização Java. A visualização Javadoc utiliza o widget SWT Browser para exibir HTML em plataformas que o suportam.

Visualização Javadoc

Visualização Declaração Há uma nova visualização Declaração (Janela > Mostrar Visualização > Outra > Java > Declaração) que mostra a origem do elemento selecionado no editor Java ou em uma visualização Java.

Visualização Declaração

Filtros de Tipo

Agora, o conjunto de tipos exibido na assistência ao código e nas sugestões de correção rápida pode ser filtrado utilizando a nova página de preferências Java > Filtros de Tipo. Os tipos que correspondem a um desses padrões de filtro na lista não serão exibidos no diálogo Abrir Tipo e não estarão disponíveis na correção rápida nem nas sugestões de assistência ao código. Esses filtros não afetam o local em que os tipos serão exibidos, nas visualizações Package Explorer e Hierarquia de Tipo.

Página de Preferências Filtros de Tipo
Suporte de Filtragem Aprimorado Os menus de visualização específicos para Java que contém uma entrada "Filtros..." agora contêm entradas verificáveis adjacentes para filtros alterados recentemente.

Filtros Aprimorados

Javadoc Externo Fora dos Archives Se você tem uma documentação de Javadoc armazenada em um archive, não será mais necessário descompactar o archive. O diálogo de propriedade local de Javadoc agora suporta documentação em archives. Selecione um JAR e torne visível sua página de propriedades (ou, de modo equivalente, Projeto > Propriedades > Caminho de Construção Java > Bibliotecas > Local de Javadoc ) para anexar a documentação a um JAR.

Diálogo de configuração de local de Javadoc

Utilize Navegar > Abrir Javadoc Externo (Shift+F2) para abrir Javadoc em um navegador.

Opções de Agrupamento na Visualização Procura Você pode comutar a nova visualização Procura para o modo de layout plano ou hierárquico no menu da visualização. Os resultados de procura Java no modo hierárquico agora podem ser agrupados por projeto, pacote, arquivo ou tipo.

Nova visualização Procura

Corresponder Filtros na Procura Java Os resultados da procura Java podem ser filtrados. Você pode filtrar comentários de Javadoc, declarações de importação, acessos de leitura e acessos de gravação. Somente os filtros aplicáveis à procura atual serão mostrados.

filtros de procura

Procurar Tipos Locais e Anônimos Agora, os tipos locais e anônimos são totalmente suportados nas operações de de procura. Em particular, você agora pode procurar referências para um tipo local selecionado. Além disso, os resultados da procura agora são adequadamente colocados nos tipos locais ou anônimos (em vez de serem colocados sempre no método de anexação mais externo).
Tipos Locais Agora, os tipos locais e anônimos são exibidos em várias visualizações específicas para Java, por padrão, juntamente com filtros nas visualizações para ocultá-los.

Locais na hierarquia de tipo

Elementos Reprovados Tipos, campos e métodos marcados como reprovados agora são processados novamente com um barra.

Elementos reprovados no contorno

Referências em Comentários de Javadoc Agora, a infra-estrutura de Java inclui referências nos comentários Javadoc. Você pode ver isso em vários locais, incluindo Procurar, Organizar Importações, novos nomes vinculado no editor e marcadores de ocorrências no editor.

Ocorrências marcadas nas marcações de Javadoc

Assistência ao Conteúdo nos Campos do Diálogo Agora, a Assistência ao Conteúdo (Ctrl+Space) também está disponível nos campos de entrada de vários diálogos Java. Procure o pequeno ícone de lâmpada elétrica ao lado do campo quando ele tiver foco.

Diálogo Nova Classe

Suporte a Conjuntos de Trabalho na Visualização Hierarquia de Tipo

Agora, a visualização Hierarquia de Tipo suporta filtragem por um conjunto de trabalho. Depois que um conjunto de trabalho é selecionado no menu da visualização, a visualização de de hierarquia mostra tipos Java contidos no conjunto de trabalho fornecido, estendido por tipos pai necessários para concluir a árvore (os últimos são mostrados com imagens preenchidas em branco).

Visualização Hierarquia de Tipo com conjunto de trabalho ativado
Interfaces na Hierarquia de Tipos do Pacote O hierarquia de tipo aberta nos pacotes (F4) agora também mostra interfaces desse pacote. O mesmo ocorre com as hierarquias nas pastas de origem, nos projetos e em JARs.

Hierarquia de Tipo de pacote com interfaces

Assistente para NLS Aprimorado O assistente para NLS (Origem > Externalizar Cadeias) foi atualizado para trabalhar em arquivos já externalizados:
  • renomear teclas e valores pré-existentes
  • renomear vários prefixos de tecla simultaneamente
  • alterar cadeias já externalizadas para 'ignorada' ou para o estado original, não marcada (internalizada) ou vice-versa
  • inserção aprimorada de novas teclas nos arquivos de propriedade

Assistente para NLS em cadeias já externalizadas

Bibliotecas Definidas pelo Usuário Agora, você pode agrupar JARs externos em uma biblioteca nomeada. Crie bibliotecas definidas pelo usuário na página de preferência Java > Caminho de Construção > Bibliotecas do Usuário e, em seguida, inclua-as no caminho de construção nas propriedades do projeto.

Página de preferências Biblioteca do Usuário

De modo semelhante às entradas de variável de caminho de classe, a entrada de caminho de classe para uma biblioteca do usuário faz referência às bibliotecas de usuário por nome (não a JARs para o sistema de arquivos local).

Biblioteca no Package Explorer

Compilador Java

Compilador Eclipse Java É Compatível com JCK1.4a O compilador Eclipse Java no modo 1.4 é compatível com JCK1.4a e no modo 1.3 é compatível com JCK1.3a.
Padrão de Inclusão para Pasta de Origem Agora, qualquer pasta de origem no caminho de construção Java pode ser associada a alguns padrões de inclusão, da mesma forma que pode incluir seletivamente alguns arquivos de origem Java. Esse é um complemento dos padrões de exclusão já disponíveis para excluir seletivamente determinados arquivos de origem. Note que ambos, na verdade, podem ser combinados de acordo com a seguinte regra: se você especificar os dois, um padrão de exclusão sempre será anterior a um padrão de inclusão. Por exemplo, {include="src/", exclude="src/sub"} indica a árvore 'src/' sem a subárvore 'src/sub/'. Os padrões de inclusão e exclusão podem ser especificados por meio da propriedade do caminho de construção do projeto.

Diálogo Excluir

Localizar o Acesso Indireto aos Membros Estáticos no código Java Agora, o compilador Java pode localizar e sinalizar acessos indiretos a membros estáticos. A opção para ativar essa verificação está localizada na página de preferências Java > Compilador > Estilo (por padrão, ela não é reportada).

Novos diagnósticos para acesso indireto a membros estáticos

O acesso indireto a membros estáticos é um problema de compatibilidade para arquivo de classe gerado. Para os arquivos de classe compatíveis com as versões do JDK anteriores a 1.2, o compilador resolve as referências estáticas indiretas à classe de declaração (Y no exemplo); para os arquivos de classe compatíveis com as versões do JDK posteriores a 1.2, o compilador resolve as referências estáticas para o tipo do receptor (X no exemplo).

Localizar Designação Booleana Acidental O compilador Java agora pode localizar designações booleanas acidentais. A opção para ativar essa verificação está localizada na página de preferências Java > Compilador > Estilo (por padrão, ela não é reportada):

Preferências do Novo Estilo de Compilador

Opção do Compilador Java para Sinalizar Acessos de Campo de Instância Não Qualificada O compilador Java agora pode localizar e sinalizar referências não qualificadas para um caminho de instância. Essa verificação pode ser ativada na página de preferências Java > Compilador > Estilo (desativada por padrão).

Essa opção suporta um estilo de codificação em que todas as referências aos caminhos de instância são qualificadas para torná-las visivelmente distintas das referências a variáveis locais.

Opção do Compilador Java para Sinalização de Bloco finally que Não Pode Ser Concluído Normalmente O compilador Java agora pode localizar e sinalizar blocos finally que não podem ser concluídos normalmente (como definido na Especificação de Linguagem Java). Os blocos finally que não podem ser concluídos normalmente podem ser confusos e são considerados uma prática incorreta. Essa verificação pode ser ativada na página de preferências Java > Compilador > Estilo (Notificada por padrão.

Novos diagnósticos para blocos finally não concluídos normalmente

Instrução de Fluxo de Controle Vazia O compilador Java agora pode sinalizar uma instrução vazia utilizada como o corpo de uma instrução de fluxo de controle. Consulte a preferência em Java > Compilador > Estilo > Instrução Vazia
Opção do Compilador Java para Sinalizar Blocos Vazios Não Documentados Agora, o compilador Java pode localizar e sinalizar blocos vazios que não são documentados com um comentário. Método e corpos de tipo totalmente vazios também são suspeitos. Essa verificação pode ser ativada na página de preferências Java > Compilador > Estilo (desativada por padrão).
Localizar Variáveis que Ocultam Outro Campo ou Outra Variável Agora, o compilador Java pode localizar declarações e campos de variável local que ocultam outro campo ou variável. A opção para ativar essa verificação está localizada na página de preferências Java > Compilador >Avançado (por padrão, ela não é reportada):

Preferências do Novo Estilo de Compilador

Localizar Verificações de Tipo Desnecessárias no Código Java Agora, o compilador pode localizar e sinalizar conversões ou operações 'instanceof' desnecessários. A opção para ativar essa verificação está localizada na página de preferências Java > Compilador > Código Não Utilizado (por padrão, ela não é reportada).

Novos diagnósticos para verificações de tipo desnecessárias

Opção do Compilador Java para Sinalização de Exceções Marcadas Desnecessárias Agora, o compilador Java pode localizar e sinalizar as exceções marcadas desnecessárias que são declaradas, mas não são lançadas. Essa verificação podem ser ativada na página de preferência Java > Compilador > Código Não Utilizado (desativada por padrão).

Note que um determinado método sempre pode declarar para lançar menos exceções marcadas do que o declarado na superclasse (ou interface).

Novo diagnóstico para exceções lançadas declaradas e não utilizadas

Correções Rápida para as Novas Opções de Compilador As novas opções do compilador Java são fornecidas com as Correções Rápidas correspondentes:

Declaração desnecessária de exceção lançada:
Correção rápida 'Remover Exceção Lançada'
 Acesso não qualificado ao campo de instância:
Correção rápida 'Qualificar Campo'
Conversão desnecessária:
Correção rápida 'Conversão Desnecessária'

Pressione Ctrl+1 em um aviso ou erro ou clique na lâmpada elétrica para obter as Correções Rápidas sugeridas.
Manipulação de Comentários de Javadoc Agora, o compilador Eclipse Java processa comentários Javadoc. Procure referências de relatório nos comentários de doc, e a reformulação também atualiza essas referências. Esse recurso é controlado a partir da guia de preferências Java > Compilador > Javadoc (ou definido para um projeto individual utilizando Projeto > Propriedades > Compilador Java > Javadoc).

Página de preferência Javadoc

Quando ativados, os comentários malformados são marcados no editor Java:
Problemas detectados em Javadoc
Correções Rápidas para Problemas nos Comentários de Javadoc Depois de ativar os novos marcadores de problemas nos comentários Javadoc (item anterior), você pode utilizar a Correção Rápida no editor Java para corrigir marcações de Javadoc ausentes. Simplesmente clique na lâmpada elétrica ou utilize Editar > Correção Rápida (Ctrl+1).

Inserir correção rápida de Javadoc

Alinhando bytecode JSR Agora, o compilador Java pode, opcionalmente, impedir a geração de arquivos de classe utilizando a instrução bytecode do JSR (normalmente utilizada na compilação de blocos try-finally), em vez de alinhar as instruções para a sub-rotina correspondente. Os arquivos de classe gerados são um bit maiores, mas geralmente carregar mais rápido. Esse modo está antecipando o suporte para o JSR 202. Consulte a preferência em Java > Compilador > Conformidade e Arquivos de Classe.

Integração de JUnit

Execução Individual de Teste JUnit Requer Configuração Especial Agora, o JUnit suporta a decoração de um teste individual para uma execução de teste. Isso é feito pela implementação de um método public static setUpTest(Test) na classe TestCase como mostrado aqui:
Executando teste JUnit individual

O método setUpTest é automaticamente utilizado quando um teste está prestes a ser  executado individualmente (incluindo a nova execução de um teste com falha). O resultado retornado por setUpTest está em execução em vez do teste fornecido, com a utilização comum sendo para agrupar o teste fornecido com a configuração especial ou eliminar.

Comparação de Cadeia Aprimorada na Visualização JUnit Quando um teste de JUnit falha porque uma cadeia não está como esperado, clique no botão de lupa na barra de ferramentas para visualizar as diferenças entre as cadeias em um visualizador de comparação:

Visualizador Junit com teste com falha

Visualizador de comparação de cadeia

Avisos jurídicos