SuppressWarnings is used to suppress compiler warnings. You can apply @SuppressWarnings to types, constructors, methods, fields, parameters, and local variables.
The following are valid parameters to @SuppressWarnings:
Example to suppress Unchecked
i.e it will suppress the warnings from an unchecked call or an unchecked cast
Example to suppress 2 warnings
Suppress 2 warnings - ie.for unchecked cast or call OR serializable class does not define a serialVersionUID
Valid warning types
Though above only few warnings were shown, but sun JDK uses a larger set of strings in the compiler. You can determine the current set by executing:
For example, Sun JDK 1.5 shows:
And Sun JDK 1.6 adds:
IDEs and static analysis tools typically support a large number of other possible values for @SuppressWarnings. These values correspond to specific static analysis checks performed by the IDE.
The following are valid parameters to @SuppressWarnings:
- unchecked.suppress warnings from an unchecked call or an unchecked cast
- path. suppress warnings about nonexistent path (classpath, sourcepath, etc) directories.
- serial. suppress warnings about missing serialVersionUID definitions on serializable classes.
- finally.suppress warnings about finally clauses that cannot complete normally.
- fallthrough. Check switch blocks for fall-through cases.
public class Main {
@SuppressWarnings(value={"deprecation"})
public static void main(String[] args) {
DeprecatedTest test = new DeprecatedTest();
test.serve();
}
}
Example to suppress Unchecked
i.e it will suppress the warnings from an unchecked call or an unchecked cast
@SuppressWarnings("unchecked")
public static void main(String[] args) {
ArrayList data = new ArrayList();
data.add("hello");
data.add("world");
Iterator it = data.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
Example to suppress 2 warnings
Suppress 2 warnings - ie.for unchecked cast or call OR serializable class does not define a serialVersionUID
@SuppressWarnings (value={"unchecked", "serial"})
public class SuppressWarningsTest implements Serializable {
public void openFile () {
ArrayList a = new ArrayList ();
File file = new File ("X:/java/doc.txt");
}
}
Valid warning types
Though above only few warnings were shown, but sun JDK uses a larger set of strings in the compiler. You can determine the current set by executing:
javac -X
which will show you (among other things) the valid settings for -Xlint. For example, Sun JDK 1.5 shows:
- all - suppress all warnings from this code
- deprecation - suppress warnings from using deprecated code
- unchecked - suppress warnings from an unchecked call or an unchecked cast
- fallthrough - suppress warnings if a switch falls through without finding a valid case (and no default)
- path -Warn about nonexistent path (classpath, sourcepath, etc) directories.
- serial - suppress warnings if a Serializable class does not define a serialVersionUID
- finally - suppress warnings from return within a finally (which will ignore return with the try)
And Sun JDK 1.6 adds:
- cast
- divzero - suppress warnings if integer divide by zero is detected
- empty
- overrides
- none
IDEs and static analysis tools typically support a large number of other possible values for @SuppressWarnings. These values correspond to specific static analysis checks performed by the IDE.
Eclipse
The Eclipse warning values for Eclipse 3.3 are documented in the JDT docs.- all - suppress all warnings
- boxing - suppress warnings relative to boxing/unboxing operations
- cast - suppress warnings relative to cast operations
- dep-ann - suppress warnings relative to deprecated annotation
- deprecation - suppress warnings relative to deprecation
- fallthrough - suppress warnings relative to missing breaks in switch statements
- finally - suppress warnings relative to finally block that don't return
- hiding - suppress warnings relative to locals that hide variable
- incomplete-switch - suppress warnings relative to missing entries in a switch statement (enum case)
- nls - suppress warnings relative to non-nls string literals
- null - suppress warnings relative to null analysis
- restriction - suppress warnings relative to usage of discouraged or forbidden references
- serial - suppress warnings relative to missing serialVersionUID field for a serializable class
- static-access - suppress warnings relative to incorrect static access
- synthetic-access - suppress warnings relative to unoptimized access from inner classes
- unchecked - suppress warnings relative to unchecked operations
- unqualified-field-access - suppress warnings relative to field access unqualified
- unused - suppress warnings relative to unused code
No comments:
Post a Comment