我想知道在使用 Java 泛型编程实现类和将类型保持为通用 Object 类之间是否有任何显着的优点/缺点?也许下面的代码澄清了我在寻找什么?
第一个代码显示了使用通用 Object 类类型来实现列表:
public class myList {
private static int DEFAULT_CAPACITY = 16;
private int size, capacity;
private Object[] dataArray;
myList(){
this(DEFAULT_CAPACITY);
}
myList(int defaultSize){
capacity = defaultSize;
size = 0;
dataArray =new Object[defaultSize];
}
public int getSize(){return size;}
public void insert(int loc, Object o){
if (size+1 <= capacity){
for (int i=size; i> loc-1; i--)
dataArray[i] = dataArray[i-1];
dataArray[loc-1] = o;
size++;
}
}
public Object getItem(int loc){
return dataArray[loc-1];
}
}
以下代码显示了使用 Java 泛型编程的相同功能:
public class MyList<E> {
private int size = 0;
private static final int DEFAULT_CAPACITY = 10;
private Object dataArray[];
public MyList() {
dataArray = new Object[DEFAULT_CAPACITY];
}
public void insert(int loc, E e) {
if (size+1 <= capacity){
for (int i=size; i> loc-1; i--)
dataArray[i] = dataArray[i-1];
dataArray[loc-1] = e;
size++;
}
}
public E get(int loc) {
return (E) elements[loc-1];
}
}