【发布时间】:2014-07-21 05:35:50
【问题描述】:
在 ArrayList 上使用 for-each 构造时,我在 Java 中遇到问题。 在一个名为 Graph 的类中,我有受保护的属性
protected ArrayList<Edge<E>> edges
在我的 Edge 类中,我有受保护的属性
protected LinkedList<Connector<E>> pointers;
在我的 Edge 类中,我想要做的是定义一种方法来在屏幕上打印图表 g 的每个 Edge 的每个指针。我尝试使用不同的方法每次都会出错,然后我最终使用了 for-each 循环(我认为这是最好的选择,因为我知道我试图迭代的集合中元素的类型)。 我的代码如下:
public void printConnectors(Graph g){
for (Edge<E> e: g.edges){
System.out.println(e.iterator()); //I do have an iterator in my Edge class
}
}
这不起作用,Eclipse 给了我以下错误:
类型不匹配:无法从元素类型 Object 转换为 Edge
我知道这可能是一个愚蠢的错误,源于我在代码中没有看到的东西,但我无法让它工作。谁能帮我解释一下为什么编译器会尝试从对象转换为边缘,即使边缘应该是边缘的 ArrayList?
【问题讨论】:
标签: java eclipse arraylist foreach iterator