import java.util.ArrayList;
class Stack {
private ArrayList stack;
private int pos;
Stack() {
stack = new ArrayList();
pos = -1;
}
int pop() {
if(pos < 0) {
System.out.println("Stack underflow.");
return 0;
}
int out = stack.get(pos);
stack.remove(pos);
pos--;
return out;
}
}
我正在尝试编写一个基本的可变长度堆栈,这是我的代码片段。当我运行这个时,我收到一个错误:
Main.java:16: error: incompatible types
int out = stack.get(pos);
^
required: int
found: Object
为什么将其作为对象传递?
最佳答案
目前,您没有定义 ArrayList
中名为 stack
的泛型类型,因此您将从 获得原始
:Object
返回类型ArrayList.get
您需要更换
ArrayList stack;
与
ArrayList<Integer> stack;
类似
stack = new ArrayList();
与
stack = new ArrayList<Integer>(); // new ArrayList<>(); for Java 7
另请参阅使用java.util.Stack
关于java - 为什么 int 作为对象传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149515/