【问题标题】:Error when using java.util.Iterator in a NeoMAD project在 NeoMAD 项目中使用 java.util.Iterator 时出错
【发布时间】:2013-10-11 09:21:50
【问题描述】:

我的项目中的一个类是使用迭代器。 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 编译时,项目无法构建。

【问题讨论】:

    标签: java ios eclipse iterator mobile-application


    【解决方案1】:

    NeoMAD 支持仅限于 Java ME API 的 Java 1.3。您正在使用 Java 迭代器类,它是 Java SE 的一部分,而不是 Java ME。这就是原因:

    • Eclipse 插件强调了一个问题
    • 您无法为 iPhone 编译应用程序

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

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

    【讨论】:

      【解决方案2】:

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

      import java.util.Iterator;
      

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

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

      【讨论】:

      • 好的,分号是输入错误。我的源代码中有它。我编辑了问题以添加它。谢谢。实际上,我添加了类型的限定名称以确保错误不是由于导入错误造成的......但这并没有改变任何东西。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 2022-12-28
      相关资源
      最近更新 更多