java如何获取接口的返回类型<T>?
我被这个问题困住了,我试图纠正它,但没有任何改变
首先,“堆栈”是一个接口 and this is the required method
复制数组堆栈并将其作为新堆栈返回,这是我的代码:
public class ArrayStack<Type> implements Stack<Type> {
private int maxSize;
private int top;
private Type [] nodes;
@SuppressWarnings("unchecked")
public ArrayStack(int n){
maxSize = n ;
top = -1 ;
nodes = (Type[]) new Object[n];
}
@SuppressWarnings("unchecked")
public Stack<Type> copy() {
int n = nodes.length;
Type[] ns = (Type[]) new Object[n];
for(int i = 0 ; i < n ; i++){
ns[i]= nodes[i];
}
return ns;
}
所以我在“return ns;”语句中得到一个编译错误,它说:
Type mismatch: cannot convert from Type[] to Stack
我不知道我是用错误的方式写了方法签名还是新数组
我将感谢你的帮助:)
# 1 楼答案
这里:
返回,因此应为:
但是一系列的T。。。不是T的堆栈。你必须下定决心,该方法应该返回一个数组(然后更改签名),还是应该返回一个新的堆栈实例(在这种情况下,你不能返回
ns
数组!)正如名字
copy()
暗示的是后者,您可能应该: