您好我在使用迭代器从集合中获取数据时遇到了同样的问题:
我有一个名为DatabaseTableFieldUIData的类,它有一个方法getFieldName。
在另一个类中,我有一个DatabaseTableFieldUIDatas的集合,如下所示:
Collection columnData
现在我想通过迭代器遍历该集合,以使用getFieldName方法获取所有字段名称。所以我试过这样的事情:
Iterator<DatabaseTableFieldUIData> it = columnData.iterator();
for (int i = 0; i < columnData.size(); i++)
String fieldName = it.getFieldName();
但它不允许我从迭代器调用getFieldName方法,所以我尝试将迭代器强制转换为DatabaseTableFieldUIData:
Iterator<DatabaseTableFieldUIData> it = columnData.iterator();
DatabaseTableFieldUIData aux;
for (int i = 0; i < columnData.size(); i++)
aux = (DatabaseTableFieldUIData) it;
我收到错误“无法从Iterator转换为DatabaseTableFieldUIData”,不知道现在该做什么:(
感谢您的帮助。
答案 0 :(得分:4)
你需要调用it.next()
来获取迭代器“指向”的对象。
有关使用迭代器的指导,请参阅http://download.oracle.com/javase/1,5.0/docs/guide/language/foreach.html。
答案 1 :(得分:3)
Iterator不是DatabaseTableFieldUIData这是如何正确使用Iterator的数百万个例子。
如果使用for-each循环,则根本不需要Iterator。
for(DatabaseTableFieldUIData aux: columnsData) {
答案 2 :(得分:1)
试试这个:
Iterator<DatabaseTableFieldUIData> it = columnData.iterator();
while(it.hasNext()){
DatabaseTableFieldUIData data = it.next();
String fieldName = data.getFieldName();
}
或更好:
for(DatabaseTableFieldUIData data : columnData){
String fieldName = data.getFieldName();
}