在教程当中有一节课讲的是集合到数组的复制,还有数组到数组的复制。
代码是:
public static <T> void copy1(collection<T> dest,T[] src) {}
public static <T> void copy2(T[] dest,T[] src) {}
copy2(new Date[10],new String[10]);//经过推断T是Object
copy1(new Vector<Date>(),new String[10]);// 编译器会报错
我的疑问是:在老师的讲解中说Vector也是一个泛型,所以当你为Vector的泛型T指定一个Date
那么T就是Date了,因为具有传播性,所以在copy1(new Vector<Date>(),new String[10])中
new String[10]就是错的。疑问就是什么情况下能推断,什么情况下不能???还有就是Vector的泛型T指定一个Date那么T就是Date了,为什么会是这样???原理是什么??请大家指教一下!有点不明白??还是我我想多了。 |