Erros/Avisos

Indique as suas preferências para as definições de Erros/Avisos na página de preferências Abre a página de preferências Erros/Avisos Java > Compilador > Erros/Avisos .

Estilo de código

Opção

Descrição

Predefinição

Acesso não estático a um membro estático

Quando activado, o compilador emite um erro ou um aviso sempre que um método ou campo estático é acedido com um receptor de expressões. Uma referência a um membro estático deverá ser qualificada com um nome de tipo.

Aviso

Acesso indirecto a um membro estático

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que um campo ou método estáticos forem acedidos indirectamente. Um campo estático de uma interface deverá ser qualificado com o nome do tipo declarante.

Ignorar

Acesso não qualificado ao campo da instância

Quando activado, o compilador emite um erro ou um aviso sempre encontra um acesso a campo que não está qualificado (p.ex. falta um 'este').

Ignorar

Bloco vazio não documentado

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

Ignorar

Aceder a um membro não acessível de um tipo delimitador

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que emular acesso a um membro não acessível de um tipo delimitador. Este tipo de acessos pode ter implicações no rendimento.

Ignorar

Método com nome de construtor

Dar a um método o nome do construtor é normalmente considerado uma programação de pouco estilo. Ao activar esta opção, o compilador vai sinalizar esta situação como um erro ou um aviso.

Aviso

Atribuição de parâmetros

Atribuir um valor a um parâmetro é geralmente considerado programação de estilo pobre. Ao activar esta opção, o compilador vai sinalizar esta situação como um erro ou um aviso.

Ignorar

Cadeias não exteriorizadas

Quando activado, o compilador emite um erro ou aviso para Literais de cadeia não exteriorizadas (isto é, não codificados com //$NON-NLS-<n>$) ou para Identificadores de cadeias não exteriorizadas que não pertençam a uma Cadeia.

Ignorar

Potenciais problemas de programação

Classe serializável sem serialVersionUID

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que um tipo a implementar 'java.io.Serializable' não contiver um campo serialVersionUID.

Aviso

A atribuição não tem efeito (por exemplo, 'x = x')

Quando activado, o compilador vai emitir um erro ou um aviso sempre que uma atribuição não produz efeitos (por exemplo, 'x = x').

Aviso

Atribuição booleana possivelmente acidental (por exemplo, 'if (a = b)')

Quando activado, o compilador emitirá um erro ou um aviso sempre que encontrar uma atribuição booleana possivelmente acidental (por exemplo, 'if (a = b)').

Ignorar

'finally' não terminou normalmente

Quando activado, o compilador emitirá um erro ou um aviso sempre que uma instrução 'finally' não termina normalmente (por exemplo, contém uma instrução de retorno).

Aviso

Instrução vazia

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

Ignorar

Utilizar uma matriz char na concatenação da cadeia

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que uma expressão char[] for utilizada com concatenações de Cadeia,

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

Aviso

Blocos catch ocultos

Localmente, de uma instrução 'try', alguns blocos 'catch' podem esconder outros, por exemplo:

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

Quando activar esta opção, o compilador vai emitir um erro ou um aviso para blocos catch ocultos correspondentes a excepções seleccionadas.

Aviso

Correspondência de tipo inexacta para argumentos vararg

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar uma correspondência de tipo inexacta para argumentos vararg.

Aviso

Encaixar e desencaixar conversões

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar o encaixe ou desencaixe de uma conversão. O auto-encaixe pode afectar negativamente o rendimento.

Ignorar

Constante de tipo de enumeração não abrangida em 'switch'

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar uma instrução switch que não contenha instruções case para cada constante da enumeração da enumeração referenciada.

Ignorar

processamento de caso de 'switch'

Quando activado, o compilador emite um erro ou um aviso sempre que encontra um caso de switch sem uma declaração 'break'. Não são permitidos casos de switch vazios.

Ignorar

Acesso de indicador de nulos

Quando activado, o compilador emite um erro ou um aviso quando se depara com uma variável não referenciada cujo valor é certamente nulo. Repare que esta análise não pode ser feita para todos os acessos de indicador de nulos; consulte Acesso a potencial indicador de nulos.

Ignorar

Acesso a potencial indicador de nulos

Quando activado, o compilador emite um erro ou um aviso sempre que encontra um caso em que uma variável local que pode ser nula não é referenciada. Tenha em consideração que a análise é relativamente conservadora, considerando apenas os casos em que existe algo duvidoso.

Ignorar

Sombrear nomes e conflitos

A declaração do campo oculta outro campo ou variável

Quando activar esta opção, o compilador vai emitir um erro ou aviso se uma declaração de campo ocultar outro campo herdado.

Ignorar

Declaração de variável local oculta outro campo ou variável

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

Ignorar

Incluir parâmetros de métodos de construtor ou setter

Quando activar esta opção, o compilador adicionalmente vai emitir um erro ou um aviso se um construtor ou parâmetro do método setter ocultar outro campo ou variável.

Inactiva

Parâmetro de tipo oculta outro tipo

Quando activar esta opção, o compilador vai emitir um erro ou aviso se um parâmetro de tipo de uma classe interna ocultar um tipo externo.

Aviso

Métodos sobrepostos mas não visíveis no pacote

Um método predefinido do pacote não é visível num pacote diferente e por isso não pode ser sobreposto. Ao activar esta opção, o compilador vai sinalizar esta situação como um erro ou um aviso.

Aviso

Conflitos do método de interface com o método 'Object' protegido

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que uma interface definir um método incompatível com um método Objecto não herdado. Até este conflito ser resolvido, tal interface não pode ser implementada, por exemplo:

interface I {
   int clone();
}

Aviso

API obsoleta e restrita

API Desactualizada

Quando activado, o compilador vai assinalar o uso de API absoleta com um erro ou um aviso.

Aviso

Sinalizar a utilização de API obsoleta dentro de código obsoleto

Quando esta opção estiver activada, o compilador vai sinalizar a utilização da API desactualizada dentro do código obsoleto. A gravidade do problema é controlada com a opção "API Desactualizada".

Inactiva

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

Quando estiver activado, o compilador vai sinalizar a sobreposição ou implementação de um método obsoleto. A gravidade do problema é controlada com a opção "API Desactualizada".

Inactiva

Referência proibida (regras de acesso)

Quando estiver activado, o compilador vai sinalizar uma referência proibida especificada nas regras de acesso.

Erro

Referência desaconselhada (regras de acesso)

Quando estiver desactivado, o compilador vai sinalizar uma referência desaconselhada especificada nas regras de acesso.

Aviso

Código desnecessário

Variável local nunca é lida

Quando activado, o compilador emite um erro ou um aviso sempre que uma variável local é declarada sem ser utilizada no seu âmbito.

Aviso

Parâmetro nunca é lido

Quando activado, o compilador emite um erro ou um aviso sempre que um parâmetro é declarado sem ser utilizado no seu âmbito.

Ignorar

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

Quando activado, o compilador emite adicionalmente um erro ou um aviso sempre que um parâmetro é declarado, sem ser utilizado no seu âmbito, em métodos de substituição ou implementação.

Inactiva

Ignorar parâmetros documentados com o controlo '@param'

Quando activar esta opção, o compilador não vai emitir um erro ou aviso sempre que um parâmetro não lido estiver documentado com um controlo '@param'.

Activa

Importação não utilizada

Quando activar esta opção, o compilador vai emitir um erro ou aviso de referência de importação não utilizada.

Aviso

Membros locais ou privados não utilizados

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que um membro local ou privado seja declarado mas nunca utilizado na mesma unidade.

Aviso

Verificação de nulos redundante

Quando activar esta opção, o compilador vai emitir um erro ou aviso sempre que se testar valores nulos a uma variável local que não pode ter um valor nulo.

Ignorar

Instrução 'else' desnecessária

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

Ignorar

Difusão ou operação 'instanceof' desnecessárias

Quando activar esta opção, o compilador vai emitir um erro ou aviso sempre que encontrar uma difusão ou operação 'instanceof' desnecesárias (por exe mplo, if (object instanceof Object) return;).

Ignorar

Declaração desnecessária de excepção verificada lançada

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar uma declaração desnecessária de uma excepção lançada.

Ignorar

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

Quando estiver activado, o compilador adicionalmente vai emitir um erro ou um aviso sempre que detectar uma declaração desnecessária de uma excepção lançada, num método de sobreposição ou de implementação.

Inactiva

Etiquetas 'break' ou 'continue' não utilizadas

Quando activado, o compilador emite um erro ou um aviso sempre que encontra uma etiqueta 'break' ou 'continue' não utilizada.

Aviso

Tipos genéricos

Operação de tipo genérico não seleccionada

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar uma operação de tipo genérico não seleccionada.

Aviso

Utilização de um tipo em bruto

Quando activado, o compilador emite um erro ou aviso sempre que encontra uma utilização de um tipo em bruto.

Ignorar

Parâmetro de tipo genérico declarado com uma associação de tipo final

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar uma associação de tipo que envolva um tipo final.

Aviso

Anotações

Anotação '@Override' em falta

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar um método a sobrepor outro método implementado e em que falta a anotação '@Override'.

Ignorar

Anotação '@Deprecated' em falta

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar um tipo obsoleto sem a anotação adicional '@Deprecated'.

Ignorar

Anotação é utilizada como super interface

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar um tipo a implementar uma anotação. Apesar de ser possível, esta acção não é considerada como positiva.

Aviso

Sinais de aviso não processados em '@SuppressWarnings'

Quando estiver activado, o compilador vai emitir um erro ou um aviso sempre que detectar um sinal de aviso não processado numa anotação '@SuppressWarnings'.

Aviso

Activar anotações '@SuppressWarnings'

Quando estiver activado, o compilador vai processar anotações'@SuppressWarnings'.

Activa

Quando activada a opção Tratar erros como erros de compilação muito graves, todos os erros gerados, muito graves ou configuráveis, levam a um resultado de código não executável. Se desactivada, o código poderá ser executado desde que não tenha erros muito graves (por exemplo, erros de sintaxe)

Conceitos relacionados

Vista Problemas
Correcção rápida
Construtor Java