Vector<String> v = new Vector<Object>();
Vector<Object> v = new Vector<String>();
这两种 写法都错了 没听太明白 说说??作者: 灰太狼爱平底锅1 时间: 2014-3-9 18:00 参数化类型不考虑类型参数的继承关系,如果Vector<String> v = new Vector<Object>();可以应用的话,那对象v中的存入的应为String类型的值,但实际却可以将任意类型存入v中,这是矛盾的,反义亦然。作者: 刘望望 时间: 2014-3-9 22:05
简单的说泛型就是提前规定该集合中存数数据的类型,
第一个Vector<String> v = new Vector<Object>(); 就好比是声明了一个存储String类型数据的集合引用,而指向的地址(可以理解成给他的赋值)确是存储Object类型的集合,不能确定该Object类型就一定能转换成String类型,所以会报错;
而第二个是同样的道理,Vector<Object> v = new Vector<String>(); 声明的存储Object类型的集合所储存的数据不确定是什么类型,而强要将String类型的数据与之转换也无法保证正确。
总之就是前后类型不一致,无法转换