有什么
List<?>不同List<Object>
主要区别在于第一行可以编译,而第二行则不能:
List<?> list = new ArrayList<String> ();List<Object> list = new ArrayList<String> ();
但是,由于您不知道泛型
List<?>是什么,因此无法使用其参数化方法:
List<?> list = new ArrayList<String> ();list.add("aString"); //does not compile - we don't know it is a List<String>list.clear(); //this is fine, does not depend on the generic parameter type至于原始类型(没有泛型)的区别,下面的代码可以编译并正常运行:
List list = new ArrayList<String> ();list.add("aString");list.add(10);


