Java:Stack.pop() + 不兼容的类型

标签 java stack incompatibletypeerror

这是我第一次使用堆栈结构。基本想法如下:我正在编写一个基于文本的冒险游戏,玩家可以访问不同的房间。目前他还不能回去。我想我可以使用堆栈来记录他的 Action 。因此,如果他移动到另一个房间,我使用 push() 将 currentCity (这是 City 类的对象)放入堆栈中。看起来像这样:

private Stack history;

在构造函数中:

history = new Stack();

在“go”函数中:

history.push(currentCity)

如果我尝试像这样在 goBack 函数中检索对象:

currentCity = history.pop();
(currentCity is a private variable of the class I'm working in. It's of the type
City)

我认为这会起作用,因为我的 Stack 顶部的对象来自 City 类型,变量 currentCity 也是如此。我仍然得到不兼容的类型。

任何帮助将不胜感激, 斯蒂勒_莱瑟

最佳答案

您需要强制转换或显式定义堆栈的通用参数。我建议指定通用参数。

private Stack<City> history;

history.push(city);
currentCity = history.pop();

关于Java:Stack.pop() + 不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14425008/

相关文章:

java - 第一个 Java 数据结构作业

c - 从与结构不兼容的指针类型进行赋值

java - string[] 的不兼容类型错误

c - 如何在 C 中用新的字符数组覆盖字符数组(又名字符串)?

java - 何时与Java/Tomcat建立数据库连接

java - 将 arrayList 数据加载到 JTable

Java - 在声明行中对静态数组进行排序(而不是在静态构造函数中)

java - 使用 Apache Tiles 3 和 Spring MVC 3.2.3 从 JSP 获取路径

multithreading - 每个进程不止一个堆栈?

java - 将一个元素压入具有多个堆栈的数组中的堆栈中将元素压入所有堆栈中