gpt4 book ai didi

java - 如何获取接口(interface)的返回类型?

转载 作者:行者123 更新时间:2023-12-01 19:42:35 24 4
gpt4 key购买 nike

我陷入了这个问题,我试图纠正它,但没有任何改变..

所以首先“Stack”是一个接口(interface) 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

我不知道我是否以错误的方式编写了方法签名或新数组..

我会感谢你的帮助:)

最佳答案

这里:

Type[] ns

被返回,因此应该是:

Stack<Type>

但是 T 的数组...不是 T 的堆栈。您必须下定决心,该方法应该返回一个数组(然后更改签名),还是应该返回一个新的 Stack 实例(在这种情况下) ,您无法返回该 ns 数组!)

正如名称 copy() 所暗示的那样,您可能应该:

  • 创建 ArrayStack 的新实例
  • 使用原始堆栈提供的相同内容设置新堆栈的堆栈...然后
  • 返回新的 ArrayStack 实例。

关于java - 如何获取接口(interface)<T>的返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com