Vector<Object> v = new Vector<Object>();v.add(1.0);double d = v.get(0);//语法有错误吗?
//换句话说 我就是 想取出v容器中的0位置的double类型的元素 有什么办法?

解决方案 »

  1.   

    Vector<Object> 中 要存不同类型的数据v.add(1.0);
    v.add("123");
    v.add('A');
    v.add(new Object());double d = v.get(0);//编译会报错;//请问有什么办法 取出 v.get(0)的double元素;
      

  2.   

    不建议存不同类型的数据,那样就干脆别用泛型了。
    如果非要这么做,那就强制转换一下呗!
    Vector<Object> v = new Vector<Object>();
    v.add(1.0);
    v.add("123");
    v.add('A');
    v.add(new Object());double d = (double)v.get(0);
      

  3.   

    呵呵……楼主其实已经很接近了。强制转换就可以了。Vector<Object> v = new Vector<Object>();
    v.add(1.0);
    //double d = v.get(0);楼主的原句
    double d = (double)v.get(0);
      

  4.   

    把不同类型的数据存在同一个Vector,不知道你打算用它做什么。对于取得的不同数据,你接下来又会用什么方法来处理它们呢?
    我能想到的只有这些。。
    import java.util.Vector;;public class Test {
    public static void main(String[] args) {
    Vector<Object> vec = new Vector<Object>();
    vec.add(1.1);
    vec.add("asd");
    vec.add('A');
                    //可以用Class来判断你保存的数据类型,如下:
    Class c = vec.get(0).getClass();
    System.out.println(c.getName());
                    //如果打印,直接可以。
    System.out.println(vec.get(0));
    System.out.println(vec.get(1));
    System.out.println(vec.get(2));
    }
    }
      

  5.   

    又想到一些!如果你实在需要使用不同的类型进行操作,你可以写一个工厂类,通过它来创建你需要的对象并进行操作。Class c = vec.get(0).getClass();
    Doubule d = c.newInstance();你最开始的复制语句是有语法问题的,double是基本类型,而Object是对象类型,两个不能相互复制。
      

  6.   

    楼主如果用Vector<Object>就存放同类型的吧,不然这没意义。
    至于你要的第一个为double,那就强制转换下
    Doubule d=(Double)v.get(0);
      

  7.   

    谢谢大家 楼主发的老师留的作业 
    取值的时候遇到了点麻烦,通过大伙的帮助已经解决了。
    泛型 Object是老师要求的。
    以后 应用中会 吸取大伙的意见。
    谢谢 大伙!