Domanda

Quale è meglio?

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

Dove AnnotationConstants è una tipica classe di costanti ...

public final class AnnotationConstants {
    private AnnotationConstants() { }

    public static final String UNCHECKED = "unchecked";

    ...
}

So che ci sono molti argomenti generali a favore e contro le classi di costanti - ed è esattamente ciò a cui non mi interessa. Voglio sapere se una classe di costanti specificamente per le annotazioni è una buona idea o una cattiva idea.

È stato utile?

Soluzione

Per questo esempio specifico resterei fedele ai letterali. Dopotutto, stai cercando di sopprimere gli avvisi: se usi il letterale sbagliato, l'avvertimento non verrà soppresso, il che attirerà la tua attenzione sul problema.

Altri suggerimenti

Direi un po 'di entrambi, per favore.

In primavera, potresti dire qualcosa come @Scope (Scopes.SESSION) o @Scope (Scopes.REQUEST), che associa un tipo specifico di comportamento all'annotazione, quindi direi sempre utilizzare una classe di costanti, che è utile per la tracciabilità.

Se stai solo sopprimendo gli avvisi, ci sono poche probabilità che tu voglia davvero rintracciarlo, quindi vai con il letterale.

Sono d'accordo con Holsam per SuppressWarnings - usa le stringhe

Se stai scrivendo la tua annotazione, ti consiglierei di usare enum ove possibile per cose che potrebbero essere rappresentate come un insieme di costanti

Per @SuppressWarning e simili, non credo. Preferisco scrivere direttamente le costanti e far controllare il compilatore, se possibile. Eclipse fa un buon lavoro in questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top