For example:
javac Foo.java
Note: Foo.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
For example:
javac Foo.java
Note: Foo.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
The "unchecked or unsafe operations" warning was added when java added Generics, if I remember correctly. It's usually asking you to be more explicit about types, in one way or another.
For example. the code
ArrayList foo = new ArrayList();
triggers that warning because javac is looking forArrayList<String> foo = new ArrayList<String>();
This comes up in Java 5 and later if you're using collections without type specifiers (e.g.,
Arraylist()
instead ofArrayList<String>()
). It means that the compiler can't check that you're using the collection in a type-safe way, using generics.To get rid of the warning, just be specific about what type of objects you're storing in the collection. So, instead of
use
In Java 7 you can shorten generic instantiation by using Type Inference.