Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法强制转换迭代器_Java_Eclipse_Casting_Iterator - Fatal编程技术网

Java 无法强制转换迭代器

Java 无法强制转换迭代器,java,eclipse,casting,iterator,Java,Eclipse,Casting,Iterator,您好,我在使用迭代器从集合中获取数据时遇到了相同的问题: 我有一个名为DatabaseTableFieldUIData的类,它有一个getFieldName方法 在另一个类中,我有一组DatabaseTableFieldUIDatas,如下所示: Iterator<DatabaseTableFieldUIData> it = columnData.iterator(); for (int i = 0; i < columnData.size(); i++) St

您好,我在使用迭代器从集合中获取数据时遇到了相同的问题:

我有一个名为DatabaseTableFieldUIData的类,它有一个getFieldName方法

在另一个类中,我有一组DatabaseTableFieldUIDatas,如下所示:

Iterator<DatabaseTableFieldUIData> it = columnData.iterator();
for (int i = 0; i < columnData.size(); i++)
        String fieldName = it.getFieldName();
收集列数据

现在我想用迭代器遍历该集合,用getFieldName方法获得所有字段名。所以我试过这样的方法:

Iterator<DatabaseTableFieldUIData> it = columnData.iterator();
for (int i = 0; i < columnData.size(); i++)
        String fieldName = it.getFieldName();
Iterator it=columnData.Iterator();
对于(int i=0;i
但它不允许我从迭代器调用getFieldName方法,因此我尝试将迭代器强制转换为DatabaseTableFieldUIData:

Iterator<DatabaseTableFieldUIData> it = columnData.iterator();
    DatabaseTableFieldUIData aux;
    for (int i = 0; i < columnData.size(); i++)
        aux = (DatabaseTableFieldUIData) it;
Iterator it=columnData.Iterator();
DatabaseTableFieldUIData aux;
对于(int i=0;i
我收到错误“无法从迭代器转换到DatabaseTableFieldUIData”,现在不知道该怎么办:(


谢谢您的帮助。

您需要调用
it.next()
以获得迭代器“指向”的对象


有关使用迭代器的指导,请参阅。

迭代器不是DatabaseTableFieldUIData这是如何正确使用迭代器的数百万个示例

如果使用for-each循环,则根本不需要迭代器

for(DatabaseTableFieldUIData aux: columnsData) {
试试这个:

Iterator<DatabaseTableFieldUIData> it = columnData.iterator();
while(it.hasNext()){
    DatabaseTableFieldUIData data = it.next();
    String fieldName = data.getFieldName();
}

只是想澄清一下:迭代器方法应该包含next()和hasNext(),您可以使用它们,而不是强制转换迭代器本身?