2011-12-12 9 views
9

Sto importando una classe che è stata deprecata e che sono obbligata a utilizzare.Ignora avvisi di tipo deprecato sull'istruzione di importazione

voglio sopprimere l'errore deprecato utilizzando il @SuppressWarnings("deprecation") annotazione.

Come per il commento su questa annotazione:

Come una questione di stile, i programmatori dovrebbero sempre utilizzare questa annotazione sul l'elemento più profondamente nidificato in cui è efficace. Se si desidera sopprimere un avviso in un metodo particolare, è necessario annotare il metodo anziché la sua classe.

Così ho chiaramente non voglio annotare la classe e sopprimere warning di deprecazione su qualsiasi tipo mia classe usa così, ma mi piacerebbe anche utilizzare l'istruzione import per evitare di digitare il nome di tipo completo , che si estende su tutto il mio monitor, su ogni utilizzo della classe deprecata.

penso che voglio fare qualcosa di simile annotare la dichiarazione import con @SuppressWarnings (non possibile) oppure specificando nella @SuppressWarnings annotazioni quale tipo di ignorare gli avvisi per (ad es @SuppressWarnings("deprecation", "fully.qualified.type.name").

voglio indicare al compilatore " va bene se uso questo, e solo questo, classe deprecata, referenziata con il suo Nome semplice, ovunque all'interno di questa altra classe, e qualsiasi altra classe deprecata di riferimento dovresti farmelo sapere. "

C'è qualcosa? come questo disponibile?

+0

Il nome completo corrisponde all'intero monitor? Mi chiedo perché sia ​​stato sottratto ... – corsiKa

+0

È un grande progetto ... che probabilmente dovrebbe essere suddiviso in diversi progetti più piccoli, ma non è il mio dipartimento. –

+3

Sei solo infastidito dall'avvertimento del compilatore? – Paul

risposta

4

Un modo per ovviare a questo sarebbe quello di fare quanto segue, assumendo che si possa estendere la classe Deprecato.

import comp.DeprecatedClass; 

@SuppressWarnings("deprecation") public class MyDeprecatedClass extends DeprecatedClass{ } 

Quindi è possibile utilizzare la versione senza doversi preoccupare di avvisi.

+0

Suppongo che questa sia un'opzione, purché la classe non sia definitiva e non ti dispiace aggiungere un nuovo strato di gerarchia di classi. Sembra una soluzione piuttosto estrema per me però. Inoltre: se si esegue questa operazione, nulla impedisce di riutilizzare in modo errato MyDeprecatedClass altrove e di non visualizzare i messaggi di avviso. –

+0

Quando si utilizza Eclipse, è possibile passare con il mouse su MyDeprecatedClass e mostrerà "@SuppressWarnings (value = {" deprecation "})" in modo che fornisca un'indicazione che si sta sopprimendo in modo sottile.Mentre sono d'accordo, questo è estremo, potresti farla franca all'interno di dove vuoi usarla: @SuppressWarnings ("deprecazione") classe privata MyDeprecatedClass estende comp.DeprecatedClass {} Sfortunatamente, questo non è un bel lavorare – Jyro117

Problemi correlati