例如:
javac Foo.java Note: Foo.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
如果你使用的是不带类型说明符的集合(例如,Arraylist()而不是ArrayList<String>()),则在Java 5及更高版本中会出现这种情况。这意味着编译器无法使用泛型以类型安全的方式检查你是否正在使用集合。
Arraylist()
ArrayList<String>()
要消除警告,只需具体说明你要在集合中存储的对象类型。所以,代替
List myList = new ArrayList();
采用
List<String> myList = new ArrayList<String>();
在Java 7中,你可以使用Type Inference缩短通用实例化。
List<String> myList = new ArrayList<>();