Vector里可以添加不同的对象,即使他们的类型是不同的只要是OBJECT
我现在遇到的问题是能否精确地将VECTOR里的对象精确的向下转型?如:
添加一个STRING和一个java.io.File的实例对象各一个在一个VECTOR
不确定其在VECTOR内的先后顺序,单要使用这两个对象各自拥有的方法能做到吗?
谢谢先

解决方案 »

  1.   

    obj instanceof String
    判断一下
      

  2.   

    File f = new File("");
    String str = new String();
    Vector<Object> v = new Vector<Object>();
    v.add(f);
    v.add(str);
    是这个意思么?接下来是什么意思呢?
      

  3.   

    能告诉我用什么类的具体方法么
    找不到
    obj instanceof String
    这个方法
      

  4.   

    File f = new File("");
    String str = new String();
    Vector<Object> v = new Vector<Object>();
    v.add(f);
    v.add(str);
    是这个意思么?接下来是什么意思呢?接下来需要取出对象啊
    V。GETELEMENT()获得的是一个OBJECT对象,能动态判断这个对象的精确类型吗?
      

  5.   

    File file = new File("..\\UtilDemo.java");
    String str = new String("Hello");
    Vector<Object> v = new Vector<Object>();
    v.add(file);
    v.add(str);
    for(Object b:v){
    if(b instanceof File){
    file.getName();
    System.out.println(file.getName());
    }
    else
    System.out.println(str);
    }
    这个意思?
      

  6.   

    instanceof是个关键词,不是方法,判定一个实例是不是属于一个方法的实例。把不同的类型放到一个容器里,这样的设计本身就不科学。告诉我你为什么这样做?
      

  7.   


    Object obj = ...;
    if (obj instanceof String){
      处理String
    } if (obj instanceof File){
      处理File

      

  8.   

    你必须知道让到容器中的对象类型有哪些,才能做到精确转型
    JAVA中的精确转型只能通过 “(类型)” 来实现
      

  9.   

    一个例子:
    class Point { int x, y; }
    class Element { int atomicNumber; }
    class Test {
    public static void main(String[] args) {
    Point p = new Point();
    Element e = new Element();
    if (e instanceof Point) {                     // compile-time error
    System.out.println("I get your point!");
    p = (Point)e;                   // compile-time error
    }
    }
    }
      

  10.   

    Vector vt = new Vector();
         vt.add(new File("f"));
         vt.add("abc");
        
         Object obj = vt.get(1);
         if(obj instanceof String)
         {
         System.out.println((String)obj);
         }
         else if(obj instanceof File)
         {
         System.out.println("File");
         }