class="java">public class Test01
{
public static void main(String[] args)
{
Map m=new HashMap();
m.put(1, new User());
m.put(2, new User());
List l=map2List(m);
System.out.println(l);
}
public static <K, V> List<V> map2List(Map<K,V> map){
Set<K>keys=map.keySet();
List<V> list=new ArrayList<V>();
for(K key:keys){
list.add(map.get(key));
}
return list;
}
}
这里public static
<K,V>貌似是对
泛型对象的一个定义,有了这个定义,后面才可以使用List<V>, Map<K,V>
同理与 public class BaseDao<K>{...}。
这里是不能用? extends Object作为泛型的,会报错:
Cannot instantiate the type ArrayList<? extends Object>
在网上查了一下, 解释是:
The generic ArrayList constructor needs to have a specific type to be parameterized on, you cannot use the '?' wildcard there.
不管怎么说, 上面的代码测试没有问题。