黑马程序员技术交流社区
标题:
泛型问题
[打印本页]
作者:
散人online
时间:
2013-1-21 22:29
标题:
泛型问题
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){}
为什么第一个编译不过,第二个却可以?求详细解释...
作者:
李敬卫
时间:
2013-1-21 23:02
第一个不过,是给的参数不匹配此方法。这是匹配的方法:
public static <T> void copy1(T dest,T[] strings){}
public static <T> void copy2(T[] dest,T[] src){}
copy1(new Vector<Date>(),new String[10]);
copy2(new Date[10],new String[10]);
这就不会再报错了
作者:
黑马张旭
时间:
2013-1-22 14:02
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>();
1.jpg
(18.87 KB, 下载次数: 25)
下载附件
2013-1-22 14:01 上传
这样就不报错了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2