【发布时间】:2020-05-20 09:57:49
【问题描述】:
我正在为我的通用 MinPriorityQueue 实现编写一个测试类。
我尝试以两种方式遍历队列(即选项 1 和 2)。选项 1 有效。选项 2 会引发错误。
选项 1:
Iterator<Integer> it = q.iterator();
while(it.hasNext())
System.out.print(it.next() + " ");
选项 2:
for(Integer i : q)
System.out.print(i + " ");
问题:为什么选项 2 会出现以下错误(以及如何解决)?
main.java:17:错误:不兼容的类型:对象无法转换为整数 for(整数 i : q)
Screenshot of class MinPriorityQueue
Screenshot of abstract class PriorityQueue
编辑 1:添加了类的屏幕截图
【问题讨论】:
-
q的类型是什么?
-
请添加你的类实现...否则很难帮助你。
-
您应该将您的代码发布为文本,而不是屏幕截图。此外,您应该展示
MinPriorityQueue的实现。我的猜测是q.iterator返回一个原始的Iterator。 -
MinPriorityQueue
-
请将您的代码发布为 text。
标签: java generics types iterator