2010-12-11 12 views
11

Netbeans fornisce molti "suggerimenti" personalizzati, che sono come avvertimenti, solo che la maggior parte di essi non può essere soppressa (solo IDE disabilitato a livello globale).Java: elenco completo dei parametri @SuppressWarnings (...) (in Netbeans)?

Ma ora guardare il codice che utilizza

@SuppressWarnings("element-type-mismatch") 

per sopprimere un suggerimento/avvertimento che si chiama "metodo di chiamata sospetta" (come remove(...) per una collezione con un tipo di "sbagliato").

Beh, non sarei mai venuto a l'idea di sopprimere un suggerimento denominato "metodo di chiamata sospetta" con un SuppressWarnings -parameter chiamato "elemento-tipo non corrispondente", ma a quanto pare, funziona.

Quindi, esiste una "lista magica" di tali parametri?

Come, ad esempio, si sopprime il suggerimento "ritorno del campo di raccolta"?

NOTA: per this similar question, "mancata corrispondenza tipo elemento" non è elencata.

risposta

12

Dopo un breve sguardo alla NB-sorgente, ho trovato queste in alcuni dei -classes java.hint:

@Hint(category="bitwise_operations", suppressWarnings="IncompatibleBitwiseMaskOperation") 
@Hint(category="initialization", suppressWarnings="LeakingThisInConstructor") 
@Hint(category="logging", suppressWarnings={"NonConstantLogger"}) //NOI18N 
@Hint(category="logging", suppressWarnings={"ClassWithMultipleLoggers"}) //NOI18N 
@Hint(category="logging", suppressWarnings={"ClassWithoutLogger"}, enabled=false) //NOI18N 
@Hint(category="code_maturity", suppressWarnings="UseOfObsoleteCollectionType") 
@Hint(category="initialization", suppressWarnings="OverridableMethodCallInConstructor") 
@Hint(category="bitwise_operations", suppressWarnings="PointlessBitwiseExpression") 
@Hint(category="code_maturity", suppressWarnings="CallToThreadDumpStack") 
@Hint(category="bitwise_operations", suppressWarnings="ShiftOutOfRange") 
@Hint(category="initialization", suppressWarnings="StaticNonFinalUsedInInitialization") 
@Hint(category="code_maturity", enabled = false, suppressWarnings="UseOfSystemOutOrSystemErr") 
@Hint(category="code_maturity", suppressWarnings="CallToPrintStackTrace") 

A quanto pare, non tutti gli IDE-suggerimenti che vengono visualizzati come avvertimenti sono fatti suppressable. .. Non so perché, però, perché la classe AbstractHint che molti di loro estende facilmente fornisce questa capacità ... Questi sono solo i nomi di soppressione, quindi, per trovare la mappatura dei nomi degli avvertimenti che rappresentano è necessario uno scavo più profondo nella fonte.

+1

@SuppressWarnings ("PublicField") funziona in NetBeans 8.2. –

1

Il documentation dice:

fornitori compilatore dovrebbe documentare i nomi di avvertimento che supportano in combinazione con questo tipo di annotazione. Sono incoraggiati a collaborare per garantire che gli stessi nomi funzionino su più compilatori.

Poiché NetBeans utilizza javac, penso, here is a list.

See also this question.

Se si utilizza un altro compilatore o un plug-in del compilatore, cercare la relativa documentazione.

+1

Ebbene, nessuna di queste risorse contiene "elementi-tipo non corrispondente ";) Sì, ho cercato la documentazione di Netbeans relativa a questo, ma senza successo. –

+1

beh, sembra non standard, e non documentato (immagino che sia anche googled). Che è cattivo – Bozho

1

Bene, l'elenco è difficile da trovare. Trovato le fonti del hint classes di Netbeans.

Quindi la "lista" è here. (vedi anche i pacchetti di sub, ad esempio jdk e perf)

Tutte le classi possono essere soppressa utilizzando il suo camel cases nome simile:

// org.netbeans.modules.java.hints.jdk.UnnecessaryBoxing.java 
@SuppressWarnings("UnnecessaryBoxing") 
Problemi correlati