Compilador Java

Esta página de preferências permite configurar as várias configurações relacionadas à compilação, construção e verificação de código fonte Java.

As preferências do compilador são separadas nas seguintes seções:

Gerais

Compatível com JDK

Opção

Descrição

Padrão

Nível de Conformidade do Compilador

Especifica o nível de conformidade do compilador.

1.4

Utilizar Configurações de Conformidade Padrão

Se ativado, as definições padrões de compatibilidade para o nível de compatibilidade com o compilador são aplicadas.

Ativado

Conformidade de Arquivos de Classe Gerados

Especifica a compatibilidade com o arquivo de classe gerado.

1.2

Compatibilidade com a Origem

Especifica a compatibilidade do código de origem aceito.

1.3

Não Permitir Identificadores Chamados 'assert'

Quando ativado, o compilador emite um erro ou um aviso sempre que 'assert' é utilizado como um identificador (palavra-chave reservada no J2SE 1.4).

Aviso

Não Permitir Identificadores Chamados 'enum'

Quando ativado, o compilador emite um erro ou um aviso sempre que 'enum' é utilizado como um identificador (palavra-chave reservada no J2SE 5.0).

Aviso

Geração de Classfile

Incluir Atributos de Variável para Arquivos de Classe Gerados

Se ativado, os atributos de variável são adicionados ao arquivo de classe. Isso ativará os nomes de variáveis locais a serem exibidos no depurador (em locais em que as variáveis são definitivamente atribuídas). O arquivo .class resultante será então maior.

Ativado

Incluir Atributos de Número de Linha em Arquivos de Classe Gerados

Se ativado, informações de número de linha são adicionadas ao arquivo de classe. Isso ativará o destaque de código fonte no depurador.

Ativado

Incluir Nome do Arquivo de Origem em Arquivo de Classe Gerado

Se ativado, o nome do arquivo de origem é adicionado ao arquivo de classe. Isso ativará o depurador para apresentar o código fonte correspondente.

Ativado

Preservar Variáveis Locais Não Utilizadas

Se ativado, variáveis locais não utilizadas (isto é, nunca lidas) não são removidas do arquivo de classe. Se esvaziadas, alterará a depuração.

Ativado

Seqüenciar Blocos Finally

Se ativado, blocos finally serão seqüenciados nos arquivos de classe gerados. Isso afeta o desempenho positivamente, mas pode resultar em arquivos de classe maiores.

expandAll off

Construindo

Gerais

Opção

Descrição

Padrão

Número Máximo de Problemas Relatados por Unidade de Compilação

Especifica quantos problemas devem ser relatados para uma unidade de compilação.

100

Ativar o Uso de Padrões de Exclusão em Pastas de Origem

Quando desativado, nenhuma entrada no caminho de classe de um projeto pode ser associada a um padrão de exclusão.

Ativado

Ativar o Uso de Vários Locais de Saída para Pastas de Origem

Quando desativado, nenhuma entrada no caminho de classe de um projeto pode ser associada a uma localização de saída específica, impedindo assim o uso de várias localizações de saída.

Ativado

Problemas do Caminho de Construção

Interromper Construção em Erros do Caminho de Construção

Permitir comutar o construtor para interromper caso o caminho de classe seja inválido.

Ativado

Caminho de Construção Incompleto

Indicar a gravidade do problema relatado quando uma entrada no caminho de classe não existe, não é legítima ou não é visível (ex. um projeto de referência está fechado).

Error

Dependências Circulares

Indicar a gravidade do problema relatado quando um projeto está envolvido em um ciclo.

Error

Binários Requeridos Incompatíveis

Indica a gravidade do problema relatado quando um projeto requer binários incompatíveis.

Ignorar

Pasta de saída

Recursos Duplicados

Indicar a gravidade do problema relatado quando mais de uma ocorrência de uma recurso será copiada para a localização de saída.

Aviso

Limpar Pastas de Saída ao Limpar Projetos

Indicar se o Construtor Java pode limpar as pastas de saída ao executar operações completas de construção.

Ativado

Recursos Filtrados

Uma lista, separada por vírgulas, de padrões de arquivos que não são copiados para a pasta de saída. 

''

Erros/Avisos

Estilo de Código

Opção

Descrição

Padrão

Acesso Não Estático a um Membro Estático

Quando ativado, o compilador emitirá um erro ou um aviso sempre que um campo ou método estático for acessado com um receptor de expressão. Uma referência a um membro estático deve ser qualificada com um nome de tipo.

Aviso

Acesso Indireto a um Membro Estático

Quando ativado, o compilador emitirá um erro ou um aviso sempre que um campo ou um método estático for acessado de modo indireto. Um campo estático de uma interface deve estar qualificado com o nome do tipo da declaração.

Aviso

Acesso Não Qualificado a Campo de Instância

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar um acesso de campo que não está qualificado (por exemplo, não tem um 'this').

Ignorar

Bloco Vazio Não Documentado

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma instrução de bloco vazio sem comentário explicativo.

Ignorar

Acesso a um Membro Não Acessível de um Tipo Incluído

Quando ativado, o compilador emitirá um erro ou um aviso sempre que emular o acesso a um membro não acessível de um tipo de inclusão. Esses acessos podem ter implicações no desempenho.

Ignorar

Métodos com um Nome de Construtor

A nomeação de um método com um nome de construtor geralmente é considerado programação de estilo inadequado. Ao ativar esta opção, o compilador sinalizará esse cenário como erro ou aviso.

Aviso

Uso de Cadeias Não Externalizadas

Quando ativado, o compilador emitirá um erro ou aviso para literais de Cadeias não exteriorizadas (isto é, não marcadas com //$NON-NLS-<n>$). 

Ignorar

Problemas Potenciais de Programação

Classe Seriável Sem serialVersionUID

Quando ativado, o compilador emitirá um erro ou um aviso sempre que um tipo que implementa 'java.io.Serializable' não contiver um campo serialVersionUID.

Aviso

Designação Sem Efeito (ex.,x = x')

Quando ativado, o compilador emitirá um erro ou um aviso sempre que uma designação não tiver nenhum efeito (ex. ').x = x').

Aviso

Possível Designação Booleana Acidental (ex. 'if (a = b)')

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma possível designação booleana acidental (ex. 'if (a = b)').

Aviso

'finally' Não É Concluído Normalmente

Quando ativado, o compilador emitirá um erro ou um aviso sempre que uma instrução 'finally' não for concluída normalmente (por exemplo, contiver uma instrução de retorno).

Aviso

Instrução Vazia

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma instrução vazia (por exemplo, um ponto-e-vírgula supérfluo).

Ignorar

Utilizando uma Matriz de Caracteres em Concatenação de Cadeia

Quando ativado, o compilador emitirá um erro ou aviso sempre que uma expressãochar[] for utilizada em concatenações de Cadeia,

"hello" + new char[]{'w','o','r','l','d'}

Aviso

Blocos de Captura Ocultos

Localmente para uma instrução try, alguns blocos de captura podem ocultar outros, por exemplo,

try { throw new java.io.CharConversionException();
} catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}.

Ao ativar esta opção, o compilador emitirá um erro ou um aviso para blocos de captura ocultos correspondentes a exceções verificadas.

Aviso

Shadow e Conflitos de Nome

Declaração de Campo Oculta Outro Campo ou Variável

Ao ativar esta opção, o compilador emitirá um erro ou um aviso se um campo ocultar outro campo herdado.

Ignorar

Declaração de Variável Local Oculta Outro Campo ou Variável

Ao ativar esta opção, o compilador emitirá um erro ou um aviso se uma declaração de variável local ocultar outro campo ou variável.

Ignorar

Incluir parâmetros de método construtor ou setter

Ao ativar esta opção, o compilador adicionalmente emitirá um erro ou um aviso se um método constructor ou setter ocultar outro campo ou variável.

expandAll off

Parâmetro Tipo Oculta Outro Tipo

Ao ativar esta opção, o compilador emitirá um erro ou um aviso se, por exemplo, um parâmetro de tipo de uma classe interna ocultar um tipo externo.

Aviso

Métodos Substituídos mas Não Visíveis no Pacote

Um método padrão de pacote não é visível em um pacote diferente e, portanto, não pode ser substituído. Ao ativar esta opção, o compilador sinalizará esse cenário como erro ou aviso.

Aviso

Método de Conflito ou de Interface com Método 'Object' Protegido

Quando ativado, o compilador emitirá um erro ou aviso sempre que uma interface definir um método incompatível com um método método de Objeto não-herdado. Até que esse conflito seja resolvido, essa interface não pode ser implementada, ou seja

interface I {
   int clone();
}

Aviso

Shadow e Conflitos de Nome

API Reprovada

Quando ativado, o compilador sinalizará o uso da API reprovada como erro ou aviso.

Aviso

Sinalizar o Uso de API Reprovada Dentro de Código Reprovado

Quando ativado, o compilador sinalizará o uso da API reprovada dentro do código reprovado. A gravidade do problema é controlada com a opção "API Reprovada".

expandAll off

Sinalizar método reprovado de substituição ou implementação

Quando ativado, o compilador sinalizará a substituição ou implementação de um método reprovado. A gravidade do problema é controlada com a opção "API Reprovada".

expandAll off

Referência Proibida (Regras de Acesso)

Quando ativado, o compilador sinalizará uma referência proibida especificada nas regras de acesso.

Error

Referência Desencorajada (Regras de Acesso)

Quando ativado, o compilador sinalizará uma referência desencorajada especificada nas regras de acesso.

Aviso

Código Desnecessário

Variável Local Nunca É Lida

Quando ativado, o compilador emitirá um erro ou um aviso sempre que uma variável local for declarada, mas nunca for utilizada dentro de seu escopo.

Aviso

Parâmetro Nunca É Lido

Quando ativado, o compilador emitirá um erro ou um aviso sempre que um parâmetro for declarado, mas nunca for utilizado dentro de seu escopo.

Ignorar

Verificar métodos de substituição e implementação

Quando ativado, o compilador emitirá um erro ou um aviso sempre que um parâmetro for declarado, mas nunca for utilizado dentro de seu escopo para substituir ou implementar métodos.

expandAll off

Importações Não Utilizadas

Quando ativado, o compilador emitirá um erro ou um aviso para referência de importação não utilizada.

Aviso

Membros Locais ou Privados Não Utilizados

Quando ativado, o compilador emitirá um erro ou um aviso sempre que um membro local ou privado for declarado mas nunca utilizado dentro da mesma unidade.

Aviso

Instrução Else Desnecessária

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma instrução else desnecessária (por exemplo, if (condition) return; else doSomething();).

Ignorar

Operação de Coerção ou 'instanceof' Desnecessária

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma operação de coerção ou de 'instanceof' desnecessária (por exemplo, if (object instanceof Object) return;).

Ignorar

Declaração Desnecessária de Exceção Verificada Lançada

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma declaração de uma exceção lançada desnecessária.

Ignorar

Verificar métodos de substituição e implementação

Quando ativado, o compilador adicionalmente emitirá um erro ou um aviso sempre que encontrar uma declaração de uma exceção lançada desnecessária em um método de substituição ou de implementação.

expandAll off

Opções do J2SE 5.0

Operação de Tipo Genérico Não Verificada

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma declaração de uma operação de tipo genérico não verificada.

Aviso

Parâmetro de Tipo Genérico Utilizado com uma Ligação de Tipo Final:

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar um ligação de tipo envolvendo um tipo final.

Aviso

Correspondência de Tipo Inexato para Argumentos vararg:

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma declaração de uma correspondência de tipo exato para argumentos vararg.

Aviso

Conversões de Boxing e de Unboxing

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma conversão de boxing ou de unboxing. Autoboxing pode afetar o desempenho de forma negativa.

Ignorar

Anotação de '@Override' Ausente

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar um método substituindo outro método implementado e a anotação @Override estiver ausente.

Ignorar

Anotação '@Deprecated' Ausente

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar um tipo reprovado sem anotação @Deprecated adicional.

Ignorar

Anotação Utilizada Como uma Superinterface:

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar um tipo que implementa uma anotação. Embora possível, essa não é considerada uma boa prática.

Aviso

Nem Todas as Constantes enum Abrangidas em 'switch':

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar uma declaração switch que não contém instruções de caso para cada constante enum do enum referido.

Ignorar

Tokens de Aviso Não Identificados em '@SuppressWarnings':

Quando ativado, o compilador emitirá um erro ou um aviso sempre que encontrar um token de aviso não identificado em uma anotação @SuppressWarnings.

Aviso

Ativar anotações '@SuppressWarnings'

Quando ativado, o compilador processará anotações '@SuppressWarning'.

Ativado

Conceitos Relacionados

Construtor Java

Tarefas Relacionadas

Construindo um Programa Java
Trabalhando com Caminhos de Construção
Trabalhando com JREs

Referência Relacionada

Preferências de Variáveis Caminho de Classe
Propriedades do Caminho de Construção Java