【发布时间】:2019-09-22 04:55:26
【问题描述】:
我现在正在做作业,偶然发现了一个可能很简单的“问题”。
我要建栈,需要完成以下方法:
public E top()
{
if(!isEmpty()) {
/*
* return top element
* which would be st[pos-1]
*/
}
return null;
}
我用
//to save elements
private Object[] st;
//for position in array
private int pos = 0;
我试图返回我的数组,但它告诉我“无法从 Object 转换为 E”。现在我不知道如何继续。
//编辑:我的构造函数
public Stack(int size)
{
st = new Object[size];
//st = new E[size]; doesn't work
}
【问题讨论】:
-
几乎肯定不是你的老师想要你做的......但是你可以通过将
Class<E> klass作为参数添加到你的构造函数来创建一个大小为size的Es数组,并调用st = (E[]) java.lang.reflect.Array.newInstance(klass, size);。