堆栈阵列实现中的通用构造函数问题?

时间:2015-02-28 22:38:20

标签: java generics constructor stack

我正在使用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);
}

它返回一个错误,即对此的调用必须是构造函数中的第一个语句。非常感谢任何可以提供帮助的人!如果您需要更多代码段,请与我们联系。

1 个答案:

答案 0 :(得分:4)

您的构造函数的问题在于您已将返回类型设置为void。您不能在构造函数上具有返回类型。这就是找不到构造函数的原因,编译器认为只有默认的构造函数。