关于这样一个方法
public static <T> List<T> fn()
{
     return new ArrayList<T>();
}这个方法的 static 后面的<T>是什么作用啊?

解决方案 »

  1.   

    考虑写一个方法,它用一个Object的数组和一个collection作为参数,完成把数组中所有object放入collection中的功能。下面是第一次尝试:static void fromArrayToCollection(Object[] a, Collection<?> c) {for (Object o : a) {c.add(o); // 编译期错误}}现在,你应该能够学会避免初学者试图使用Collection<Object>作为集合参数类型的错误了。或许你已经意识到使用 Collection<?>也不能工作。会议一下,你不能把对象放进一个未知类型的集合中去。解决这个问题的办法是使用generic methods。就像类型声明,方法的声明也可以被泛型化——就是说,带有一个或者多个类型参数。static <T> void fromArrayToCollection(T[] a, Collection<T> c){       for (T o : a) {           c.add(o); // correct       }    }