所以我有一个可变字符串,我想将其存储在字符串类型的迭代器中,但是我不断收到错误消息,指出它是不兼容的类型。如何在迭代器中存储字符串变量?

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();
}


任何帮助将不胜感激,谢谢!

附言我忘了包含它,但是如何返回此Iterator?我收到一条错误消息,指出它找到了java.util.ObjectType,并且它需要java.util.Iterator。

最佳答案

您误解了迭代器。迭代器不等于要迭代的集合中的对象。相反,它就像是指向此类对象的“指针”。

如果有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();

关于java - 如何在Iterator <object>中存储对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31883345/

10-14 07:38