我正在使用Java进行通用堆栈实现,并且遇到了构造函数的一些问题。 Stack226Array类实现了Stack226,它是给我们的。所以,我的构造函数声明如下:
public void Stack226Array(int initialCapacity) {
this.stack = (T[]) new Object[initialCapacity];
this.top = 0;
}
我这样称呼它:
Stack226<Integer> intStack = new Stack226Array<>(10);
返回错误:
constructor Stack226Array in class Stack226Array<T> cannot be applied to given types;
Stack226<Integer> intStack = Stack226Array<Integer>(10);
required: no arguments
found: int
可能是相关的问题,但是当我尝试将默认构造函数声明为:
时public void Stack226Array() {
this(100);
}
它返回一个错误,即对此的调用必须是构造函数中的第一个语句。非常感谢任何可以提供帮助的人!如果您需要更多代码段,请与我们联系。
答案 0 :(得分:4)
您的构造函数的问题在于您已将返回类型设置为void。您不能在构造函数上具有返回类型。这就是找不到构造函数的原因,编译器认为只有默认的构造函数。