所以我有一个变量字符串,我想将它存储在一个字符串类型的Iterator中,但我一直收到一个错误,指出它是不兼容的类型。如何在迭代器中存储字符串变量?
Incompatible Types:
Required: java.util.Iterator <java.lang.String>
Found: java.lang.String
这是我到目前为止所做的:
Iterator<?> perEntry = entries.iterator();
Iterator<String> ids;
while (perEntry.hasNext()) {
ids = perEntry.next().getId();
}
任何帮助将不胜感激,谢谢!
P.S。我忘了包括这个,但是如何归还这个迭代器?我收到一条错误,声明它找到了java.util.ObjectType,它需要java.util.Iterator。
答案 0 :(得分:2)
你误解了迭代器。迭代器不等效于正在迭代的集合中的对象。相反,它就像是指向这样一个对象的“指针”。
如果您有Iterator<Entity>
,则可以通过拨打Entity
来获取next()
。但是,迭代器本身仍然是Entity
上的迭代器。它无法转换为String
的迭代器。
但是,您可以将迭代器中的所有字符串收集到集合中,如下所示:
List<String> idList = new ArrayList<>();
while (perEntry.hasNext()) {
idList.add(perEntry.next().getId());
}
一旦您的idList
列表中包含数据,您就可以获得其迭代器。它将是Iterator<String>
,因为idList
元素的类型为String
:
Iterator<String> ids = idList.iterator();