2014-07-10 56 views
0

我嘗試創建一個MUC室創建者我的應用程序,因爲我幾乎看到的每一個做,是在aSmack的教程中,我看到每一個這樣做:類型不匹配:不能從列表<FormField>轉換爲迭代器

for (Iterator fields = form.getFields(); fields.hasNext();) { 
       FormField field = (FormField) fields.next(); 
    if (!FormField.TYPE_HIDDEN.equals(field.getType()) && field.getVariable()!= null) { 
        // Sets the default value as the answer 
        submitForm.setDefaultAnswer(field.getVariable()); 
       } 

但是當我使用它給出了這個錯誤:

Type mismatch: cannot convert from List<FormField> to Iterator 

自那時以來的任何事情改變或什麼是錯的傢伙?

回答

0

乍一看,你的代碼有兩個不好的事情:

1)您指定的Iterator是原始的方式。這是可行的,但爲了避免不良行爲,定義Iterator的類型是個好習慣。如果你期望FormField s,你應該定義你的迭代器,如Iterator<FormField>

2)我不知道你的具體例子,但如果它給出了這個錯誤,無疑getFields()方法返回一個List<FormField> s。

你可能想叫:

for (Iterator<FormField> fields = form.getFields().iterator(); fields.hasNext();) { 
    ... 
} 
+0

這不是我的代碼的傢伙,它的官方asmack代碼 – user3805809

+0

不錯,這似乎正確 – user3805809

相關問題