【发布时间】:2014-02-05 02:26:34
【问题描述】:
所以我在这里尝试运行这个简单的程序:
import java.util.*;
class StackDemo
{
public static void main(String[] args) {
Stack s = new Stack();
s.push(5);
s.push("dog");
System.out.print(s);
}
}
StackDemo.java 使用未经检查或不安全的操作。
注意:使用-Xlint:unchecked 重新编译以获取详细信息。
处理完成。
它显示了预期的结果,即"[5, dog]",但我不理解“构建输出”窗口上的该消息。
这里可能有什么问题?
【问题讨论】:
-
您是否尝试使用
-Xlint:unchecked进行编译以获取更多详细信息? -
这是因为你没有使用泛型。要摆脱警告,您需要像
Stack<Object> s = new Stack<>();一样声明您的堆栈。但是混合动物和算术是一个奇怪的想法。 -
@JonSkeet 这是一般性建议(根据 Javadoc),只是评论而非答案。
-
@Puce:但我认为目前这实际上并没有帮助。如果您处于不了解泛型的阶段,那么 Deque 与 Stack 的优势并不是真正的主要问题,IMO。
-
@Puce:我认为至少值得明确说明您的评论与用户面临的问题完全无关。
标签: java stack compiler-warnings