Vector vector = new Vector(3,3);
vector.add(new Employer("wang",20,"male","manager",3000.0f));
vector.add(new Employer("li",20,"female","manager",2222.0f));
vector.add(new Employer("la",22,"male","manager",1000.0f));
.....
for(int i=0;i<vector.size();i++){
    Employer employer = (Employer)Vector.get(i);
    //利用Vector数组中get()方法得到对应位置上的元素,并转换为Employer的对象
}在刚开始加入vector数组的就是三个Employer对象啊,为什么在后面我要得到指定位置的元素时候,还要把它转换为Employer对象呢?不明白,请告诉我这个小菜菜吧,谢谢!

解决方案 »

  1.   

    public E get(int index)返回的类型是E你可以使用Iterator或者Enumration迭代整个向量数组
      

  2.   

    可以不转,用范型..
    Vector<Employer>
      

  3.   

    原因是你在声明Vector时没有指明范型,默认为Object,所以get返回的是Object,自然需要进行强转如果在声明时确定范型,则可以不转
    Vector<Employer> vector = new Vector<Employer>(3,3);
      

  4.   

      你在声明Vector vector = new Vector(3,3)时没有给出泛型指定,
       
     而Vector 的方法  add(Object o) 的参数是 Object 型的,
     
    你在使用 vector.add(new Employer("wang",20,"male","manager",3000.0f))
    时虽然 添加的是 Employer的对象,但存进去的是Object类型的对象.而Vector 的方法  Object get(int index) 返回的是Object类型的,所以,必须将Object类型的转换 成 Employer类型的才可以供自己使用.
      

  5.   

    因为你这样返回的是Object。所以要转。使用泛型就不用强转了。o了。