copy1(new Vector<Date>(),new String[10]);
copy2(new Date[10],new String[10]);
public static <T> void copy1(Collection<T> dest,T[] src){}
public static <T> void copy2(T[] dest,T[] src){}
为什么第一个编译不过,第二个却可以?求详细解释...
答案你可以这么分析 第一个方法 你调用的时候可以 等价于
Collection<T> dest = new Vector<Date>() ; 左面明明是可以接受任意的类型 而右面只规定是 Data类型 这样当然不可以
就比如 左面是一个可以装动物的栅栏 你右面是个只装狗的栅栏 编译当然不能通过
你可以把 改成 new Vector<Object>();
这样就不报错了
|