通过编写自己的泛型类,我没有做太多工作,但我正在尝试创建自己的ArrayStack类,并且无法理解如何正确编写构造函数。
public class ArrayStack<T> implements List<T> {
private T[] a;
private int n;
public ArrayStack(T[] a) {
this.a = a;
}
}
我的主要课程使用它:
public class ArrayStackTester {
public static void main(String[] args) {
ArrayStack<Integer> numbers = new ArrayStack<Integer>();
}
}
这会产生一个编译错误,表示The ArrayStack<Integer> is undefined
,所以我显然怀疑ArrayStack
类中的构造函数存在问题。
为简洁起见,我没有包含所有覆盖List
方法。
答案 0 :(得分:3)
首先尝试定义这个no-args构造函数:
public ArrayStack() {
}
或者,传递一个正确类型的数组:
Integer[] array = new Integer[100];
ArrayStack<Integer> numbers = new ArrayStack<Integer>(array);
答案 1 :(得分:2)
您定义了一个构造函数,它使用T[]
。然后你试图调用一个没有参数的构造函数。您需要为new ArrayStack<Integer>()
定义构造函数,以执行您需要它执行的操作。
public ArrayStack() {
// Initialize a (and possibly n) here as appropriate)
}
答案 2 :(得分:1)
是否编译了ArrayStack类? 有一个通用数组,会导致麻烦 How to create a generic array in Java?