2010-12-11 23 views
11

Netbeans proporciona una gran cantidad de "sugerencias" personalizadas, que son como advertencias, solo que la mayoría de ellas no se pueden suprimir (solo se desactivan IDE-globalmente).Java: lista completa de parámetros de @SuppressWarnings (...) (en Netbeans)?

Pero ahora mirar el código que utiliza

@SuppressWarnings("element-type-mismatch") 

para suprimir una pista/advertencia que se llama "llamada al método sospechoso" (como remove(...) para una colección con un tipo "malo").

Bueno, nunca llegaría a la idea de suprimir una sugerencia llamada "método sospechoso" con un parámetro SuppressWarnings llamado "elemento-tipo-desajuste", pero aparentemente funciona.

Entonces, ¿hay una "lista mágica" de tales parámetros?

¿Cómo, por ejemplo, suprimo la sugerencia/advertencia "return of collection field"?

NOTA: para this similar question, "element-type-mismatch" no aparece en la lista.

Respuesta

12

Después de un breve vistazo a la NB-código fuente, encontré estos en algunos de los -Clases 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") 

Al parecer, no todos los IDE-consejos que se muestran como advertencias están hechas suppressable. .. Sin embargo, no sé por qué, porque la clase AbstractHint que muchos de ellos extienden fácilmente proporciona esta capacidad ... Sin embargo, estos son sólo los nombres de supresión, por lo que para encontrar el mapeo de los nombres de las advertencias que representan , se necesita una excavación más profunda en la fuente.

+1

@SuppressWarnings ("PublicField") funciona en NetBeans 8.2. –

1

El documentation dice:

fabricantes de compiladores deben documentar los nombres de advertencia que apoyan conjuntamente con este tipo de anotación. Se les anima a cooperar para garantizar que los mismos nombres funcionen en múltiples compiladores.

Dado que NetBeans está utilizando javac, creo, here is a list.

See also this question.

Si está utilizando otro compilador o algún plugin de compilación, busque su documentación.

+1

Bueno, ninguno de estos recursos contiene "elemento de tipo-desajuste ";) Sí, busqué la documentación de Netbeans relacionada con esto, pero sin éxito. –

+1

bueno, parece no estándar, y no está documentado (supongo que también en Google). Cual es malo. – Bozho

1

Bueno, la lista es difícil de encontrar. Encontré las fuentes del hint classes de Netbeans.

Así que la 'lista' es here. (también mirar los paquetes de sub; por ejemplo jdk y perf)

Todas las clases pueden ser suprimidas mediante el uso de su nombre camel cases como:

// org.netbeans.modules.java.hints.jdk.UnnecessaryBoxing.java 
@SuppressWarnings("UnnecessaryBoxing") 
Cuestiones relacionadas