Pergunta

O que é melhor?

  1. @SuppressWarnings("unchecked")
  2. @SuppressWarnings(AnnotationConstants.UNCHECKED)

Onde AnnotationConstants é um típico classe constantes ...

public final class AnnotationConstants {
    private AnnotationConstants() { }

    public static final String UNCHECKED = "unchecked";

    ...
}

Eu sei que há um monte de argumentos gerais a favor e contra as classes constantes - e isso é exatamente o que eu sou não interessado em Eu quero saber se uma classe constantes especificamente. para anotações é uma boa idéia ou uma má idéia.

Foi útil?

Solução

Para esta específica exemplo, eu ia ficar com literais. Afinal, você está tentando avisos suprimir - se você usar o literal errado, o aviso não será suprimida, o que irá chamar a atenção para o problema

.

Outras dicas

Eu diria que um pouco de ambos, por favor.

Na Primavera, você poderia dizer algo como @Scope (Scopes.SESSION) ou @Scope (Scopes.REQUEST), que atribui um tipo específico de comportamento para a anotação então eu diria que sempre usar uma classe constantes, o que é bom para a rastreabilidade.

Se você está apenas suprimindo advertências, há pouca probabilidade de que você quiser realmente traçar isso, então basta ir com o literal.

Eu concordo com Holsam para SuppressWarnings - usar as cordas

Se você estiver escrevendo seu próprio anotação, eu recomendo usng enums sempre que possível para que as coisas que poderiam ser representados como um conjunto de constantes

Para @SuppressWarning e os gostos, eu não penso assim. Eu prefiro escrever as constantes diretamente, e tem o compilador vê-los se possível. Eclipse faz um bom trabalho com isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top