下面程序, 我想声明一个可以放 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;眼花缭乱的..... 晕
都不行, 谢谢!// 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;眼花缭乱的..... 晕
会导致内存占用多, 编译后的class变大,
-----------------
这个没听说过
class TA {
}// type B
class TB extends TA {
}public class TestTemplate { public static void main(String[] args) {
Vector<? extends TA> v=new Vector();
}
}
但? 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);
}
}
Vector<Class<? extends TA>> v2 = new Vector<Class<? extends TA>>();
v2.add(TA.class);
v2.add(TA.class);