2013-10-11 17 views
1

我的項目中的一個類正在使用迭代器。 Eclipse標誌着java.util中沒有迭代器。在NeoMAD項目中使用java.util.Iterator時出錯

這裏是源代碼的摘錄:

import java.util.Iterator; 

java.util.Iterator it = rows.iterator(); 
while (it.hasNext()) { 
    list.addView(((RowLayout)it.next()).getView()); 
} 

然而,當我編譯爲Android是沒有問題的。 apk工作正常,可以部署到設備上。當我爲iPhone編譯時,該項目無法建立。

回答

1

NeoMAD支持Java 1.3,僅限於Java ME API。您正在使用屬於Java SE而不是Java ME的Java Iterator類。這就是爲什麼的原因:

  • Eclipse的插件是強調一個問題
  • 你不能編譯應用程序的iPhone

您的代碼正在爲Android,因爲Java.Iterator類在這個平臺上存在。由於NeoMAD使用Android SDK構建應用程序,因此不存在任何錯誤。但是NeoMAD使用它自己的編譯器來生成Objective-C源代碼,並且此操作僅限於Java ME API。這就是爲什麼您不能使用Java SE類(例如iOS的Iterator或NeoMAD的Windows Phone目標)。

爲了避免這個問題,您必須修改代碼以使用整數計數器遍歷向量元素。

1

您在進口報關後忘了分號

import java.util.Iterator; 

此外,如果您使用的是類型的限定名稱(如在下面的線),則不需要進口申報

java.util.Iterator it = rows.iterator(); 
+0

好的,對於分號這是一個打字錯誤。我有我的源代碼。我編輯了這個問題來添加它。謝謝。 Actualy,我添加了該類型的限定名稱,以確保該錯誤不是由於導入錯誤導致的......但這並沒有改變任何內容。 –

相關問題