在NeoMAD项目中使用java.util.Iterator时出错

时间:2013-10-11 09:21:50

标签: java ios eclipse iterator mobile-application

我的项目的一个类是使用迭代器。 Eclipse标志着java.util中没有迭代器。

以下是源代码的摘录:

import java.util.Iterator;

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

尽管如此,当我为Android编译时,没有问题。 apk工作正常,可以部署到设备。当我为iPhone编译时,无法构建项目。

2 个答案:

答案 0 :(得分:1)

您在导入声明后忘记了分号

import java.util.Iterator;

此外,如果您使用的是该类型的限定名称(如下行所示),则不需要导入声明

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

答案 1 :(得分:1)

NeoMAD支持Java 1.3仅限于Java ME API。您正在使用Java Iterator类,它是Java SE的一部分而不是Java ME。这就是为什么:

  • Eclipse插件正在强调问题
  • 您无法为iPhone编译应用程序

您的代码适用于Android,因为此平台上存在Java.Iterator类。由于NeoMAD使用Android SDK构建应用程序,因此没有错误。但是NeoMAD使用自己的转换编译器来生成Objective-C源代码,此操作仅限于Java ME API。这就是为什么你不能使用Java SE类,如iOS的Iterator或NeoMAD的Windows Phone目标。

要避免这个问题,您必须修改代码以使用整数计数器循环遍历向量元素。