import java.util.EmptyStackException;
import java.util.Vector;
public class Stack<E> extends Vector<E> {
private E a[];
private int top;
public void Stack() {
a = new E[100];
top = -1;
}
public void Stack(int n) {
a = new E[n];
top = -1;
}
public E pop() {
E obj;
int len = size();
if (top == -1)
throw new EmptyStackException();
else
obj = a[top--];
return obj;
}
public void push(E e) {
if (e == null)
throw new NullPointerException();
else if (top == size() - 1)
System.out.println("Stack full");
else {
a[++top] = e;
System.out.println("pushed :" + e);
}
}
public int size() {
int i;
for (i = 0; a[i] != null; i++)
;
return i;
}
}
这是我的筹码仿制药Java类。我在两个构造函数(即Stack()和Stack(int n))中获得数组声明中的错误。在这两种情况下,错误都是“通用数组创建”。请帮助
请参阅此问题:http://stackoverflow.com/questions/529085/java-how-to-generic-array-creation – Mat 2012-04-11 12:49:13
你的构造函数是不是真的构造函数,因为构造函数没有返回类型。另外,你正在扩展'Vector',这意味着你不需要有一个本地数组。 – Paaske 2012-04-11 13:05:55