gpt4 book ai didi

java - 自定义迭代器返回对象

转载 作者:行者123 更新时间:2023-12-01 18:53:55 25 4
gpt4 key购买 nike

我为类 MyList 编写了一个自定义迭代器,如下所示:

private class MyListIterator implements Iterator<ListItem> {
// Constructor
public MyListIterator() {
nextElement = head;
}

@Override
public ListItem next() {
...

}

然后在类MyList中我创建一个新的MyListIterator,如下所示:

@Override
public Iterator<ListItem> iterator() {
MyListIterator iterator = new MyListIterator();
return iterator;
}

最后我尝试迭代一个 MyList 对象,期望 ListItems:

MyList list = new MyList();
for (ListItem item : list ) {
System.out.println(item.value);
}

但是我收到了不兼容类型错误,因为迭代器返回 Object 类型而不是 ListItem。我该如何修复它?

编辑:MyList实现MyListInterface:

public interface MyListInterface<T extends Comparable<T>> extends Iterable<T> {
public Iterator<T> iterator();
}

但我不允许更改 MyListInterface 中的任何内容

private class ListItem {
Comparable value;
ListItem previous;
ListItem next;

public ListItem(Comparable value) {
this.value = value;
}
}

最佳答案

您的MyListimplements Iterable而不是implements Iterable<ListItem> 。编译器正在向您提供有关此的警告;注意警告。

更新后,您应该使用 implements MyListInterface<ListItem> 。事实上,您收到了我提到的警告(使用原始类型 MyListInterface )——这些警告旨在帮助您避免和解决此类问题。

关于java - 自定义迭代器返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59692904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com