2011-09-13 17 views

risposta

92

L'annotazione @SuppressWarnings disabilita alcuni avvisi del compilatore. In questo caso, l'avviso relativo al codice deprecato ("deprecation") e alle variabili locali non utilizzate o ai metodi privati ​​non utilizzati ("unused"). This article explains the possible values.

+0

Nice answer @nfechener –

3

In Java, @SuppressWarnings vengono utilizzati per limitare il compilatore per mostrare il messaggio di avviso sullo schermo della console.

es

@SuppressWarnings("unused") 
CheckBox transferredField = new CheckBox("is transferred"); 

se io non uso transferredField variabile nel mio codice allora il vostro IDE Eclipse mai mostrare l'avvertimento che non si utilizza questa variabile transferredField nel codice.

-3

il @SuppressWarnings("unused") e altri che ho provato, ma non funzionano, e io uso sempre il metodo dire Gradle in questo progetto per

lintOptions{ 
     checkReleaseBuilds false 
     abortOnError false; 
     disable 'deprecation' 
    } 

    tasks.withType(JavaCompile) { 
     options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" 
    } 
+0

Si prega di non disabilitare gli avvisi su tutto il progetto. La disattivazione di un avviso dovrebbe essere portata al livello più specifico possibile, in cui sai esattamente perché è giusto ignorare nel tuo caso. Nascondendoli per l'intero progetto nasconderai anche preoccupazioni legittime che dovresti considerare di cambiare piuttosto che ignorare. –

1

Ancora una cosa: non solo è possibile aggiungerli in linea, ma anche annotate methods. F.ex.

@Override 
@SuppressWarnings("deprecation") 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 
} 

Tuttavia, si consiglia di utilizzare il più piccolo campo di applicazione possibile

Come una questione di stile, i programmatori devono sempre utilizzare questa annotazione sul l'elemento più profondamente nidificato in cui è efficace. Se vuoi sopprimere un avvertimento in un particolare metodo, dovresti annotare quel metodo piuttosto che la sua classe.

Problemi correlati