java - For 语句不适用于每个数组元素?

标签 java android for-loop andengine

这个问题与 Android/AndEngine 有关,但总体上与 Java 相关。

我有一个 for 循环,用于附加数组中的处理矩形。这是我的代码。

try {
        if ((NPCrectangle.size() > 0) && (NPCbody.size() > 0)) {
            System.out.println("NPCrectangle size is "+NPCrectangle.size());
            for (int i = 0; i < NPCrectangle.size(); i++) {
                System.out.println("For loop ran for NPCrectangle "+i);
                for (int j = 0; j < NPCbody.size(); j++) {
                    NPCrectangle.get(i).setX(NPCbody.get(j).getPosition().x*32);
                    attachChild(NPCrectangle.get(i));
                    System.out.println("RECTANGLE ATTACHED FOR NPC"+i);
                }
            }
        }
    } catch (Exception e) {
        // TODO: handle exception
    }

System.out.println("NPCrectangle size is "+NPCrectangle.size());
        for (int i = 0; i < NPCrectangle.size(); i++) {
            System.out.println("For loop ran for NPCrectangle "+i);

我得到“NPCrectangle 大小为 2”,但随后我只得到“For 循环运行 NPCrectangle 0”。它永远不会对数组的第二个元素执行任何操作。这是为什么?

这是我的收获:

04-25 18:45:45.420: W/System.err(2235): java.lang.IllegalStateException: pEntity 'Rectangle' already has a parent: 'GameScene'. New parent: 'GameScene'!
04-25 18:45:45.420: W/System.err(2235):     at org.andengine.entity.Entity.assertEntityHasNoParent(Entity.java:1707)
04-25 18:45:45.420: W/System.err(2235):     at org.andengine.entity.Entity.attachChild(Entity.java:907)

当您尝试两次附加同一个 Sprite 时,这是一个错误。有建议吗?

最佳答案

这个循环

for (int j = 0; j < NPCbody.size(); j++) {
                    NPCrectangle.get(i).setX(NPCbody.get(j).getPosition().x*32);
                    attachChild(NPCrectangle.get(i));
                    System.out.println("RECTANGLE ATTACHED FOR NPC"+i);

运行多次,具体取决于NPCbody.size(),但会附加相同的矩形。 NPCrectangle.get(i),每次。因此,您第二次通过内部循环时会收到错误。

关于java - For 语句不适用于每个数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225758/

相关文章:

java - Spring Social Facebook 2.0.2 无法获取电子邮件

android - Android Studio 缓慢的 gradle 构建和高磁盘使用率的任何解决方案?

python - 创建一个由从另一个列表中弹出的元素组成的列表 (Python)

android - Google Guava Invokedynamic 需要 --min-sdk-version >= 26

r - 逐步找到R中列表中最频繁的项目

java - 如何为 Spring Boot 2 添加自定义 MeterRegisty

java 8 流如何在结果分组中进行分组?

java - 不支持的媒体类型 (415)- 放入 java 列表

在真实设备上运行的 Android 应用程序崩溃