我想知道为什么 Vector api(以及其他)没有像下面的代码那样选择对其底层数组使用强类型?为什么使用 week typing Object ?强类型不是更好吗,因为类型安全在编译时就解决了?
public class Vector<E> {
private static final initialCapacity = 2;
protected E[] elementData;
private Vector(Class<E> c) {
@SuppressWarnings("unchecked")
final E[] elementData = (E[]) Array.newInstance(c, initialCapacity);
}
}
最佳答案
Vector
、ArrayList
和整个集合框架都是在泛型出现之前编写的。当时他们并没有真正的替代方案,为了向后兼容,必须保留这种方式。
关于java - 为什么对 Vector、ArrayList 和整个 Java 集合框架使用弱类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899148/