Annotation Interface SuppressWarnings


@Retention(SOURCE)public @interfaceSuppressWarnings
Indicates the warnings to be suppressed at compile time in the annotated element, and in all elements contained in the annotated element.

TheSuppressWarnings annotation interface is applicable in all declaration contexts, so an@SuppressWarnings annotation can be used on any element. As a matter of style, programmers should always use this annotation on the most deeply nested element where it is effective. For example, if you want to suppress a warning in a particular method, you should annotate that method rather than its class.

The set of warnings suppressed in a given element is a union of the warnings suppressed in all containing elements. For example, if you annotate a class to suppress one warning and annotate a method in the class to suppress another, both warnings will be suppressed in the method. However, note that if a warning is suppressed in amodule-info file, the suppression applies to elements within the file andnot to types contained within the module. Likewise, if a warning is suppressed in apackage-info file, the suppression applies to elements within the file andnot to types contained within the package.

Java compilers must recognize all the kinds of warnings defined in theJava Language Specification (JLS section9.6.4.5) which include:

  • Unchecked warnings, specified by the string"unchecked".
  • Deprecation warnings, specified by the string"deprecation".
  • Removal warnings, specified by the string"removal".
  • Preview warnings, specified by the string"preview".
Whether or not a Java compiler recognizes other strings is a quality of implementation concern. Compiler vendors should document the additional warning names they support. Vendors are encouraged to cooperate to ensure that the same names work across multiple compilers.

Implementation Note:
In addition to the mandated suppression strings, thejavac reference implementation recognizes compilation-related warning names documented in its--help-lint output.
SeeJava Language Specification:
4.8 Raw Types
4.12.2 Variables of Reference Type
5.1.9 Unchecked Conversion
5.5 Casting Contexts
9.6.4.5 @SuppressWarnings
Since:
1.5
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    The set of warnings that are to be suppressed by the compiler in the annotated element.
  • Element Details

    • value

      String[] value
      The set of warnings that are to be suppressed by the compiler in the annotated element. Duplicate names are permitted. The second and successive occurrences of a name are ignored. The presence of unrecognized warning names isnot an error: Compilers must ignore any warning names they do not recognize. They are, however, free to emit a warning if an annotation contains an unrecognized warning name.
      Returns:
      the set of warnings to be suppressed