下面程序, 我想声明一个可以放 TA, 或 TA子类的Vector, 为什么
都不行, 谢谢!// TestTemplate.javaimport java.util.*;// type A
class TA {
}// type B
class TB extends TA {
}public class TestTemplate { public static void main(String[] args) {
Vector<? extends TA> v;
v = new Vector<? extends TA>();  // 编译错误:Cannot instantiate the type Vector<? extends Vector>
}
}另外顺便问一下, 我听一个人说使用 import packet.*,
会导致内存占用多, 编译后的class变大, 但我觉得不太
可能, 把程序写成这样:
import packet.class1;
import packet.class2;
....
import packet.classN;眼花缭乱的..... 晕

解决方案 »

  1.   

    import packet.*,
    会导致内存占用多, 编译后的class变大,
    -----------------
    这个没听说过
      

  2.   

    import java.util.*;// type A
    class TA {
    }// type B
    class TB extends TA {
    }public class TestTemplate { public static void main(String[] args) {

    Vector<? extends TA> v=new Vector();
    }
    }
      

  3.   

    谢谢, 原来应该声明为下面那样, TB就是TA, 呵呵, 完全的概念错误, 
    但? extends 是什么时候用的?
    public class TestTemplate { public static void main(String[] args) {
    Vector<TA> v = new Vector<TA>();

    TA a = new TA();
    v.add(a);

    TB b = new TB();
    v.add(b);
    }
    }
      

  4.   

    哦, ? extends 是专门给存放class用的, 比如
    Vector<Class<? extends TA>> v2 = new Vector<Class<? extends TA>>();
    v2.add(TA.class);
    v2.add(TA.class);