有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java“null”值从未分配给我的Runnable

所以我有这个代码:

    for(Runnable loadTask : mMeshLoadMap.values())
    {
        if(loadTask != null)
        {
            loadTask.run();
            loadTask = null;
        }
    }

我的问题是loadTask = null语句从未执行过,Android Studio说“分配给loadTask的值“null”从未使用过”

另外,当我在该行设置断点时,调试器永远不会到达它。 它可以到达loadTask.run(),但不能到达loadTask = null 而且我确信loadTask.run()不会阻塞很长时间


共 (1) 个答案

  1. # 1 楼答案

    它当然可以被分配,但它毫无意义。您只能将名为loadTask的引用置零(它超出了块的范围)。无法更新数组中的引用The For-Each Loop表示(部分)

    The for-each loop hides the iterator, so you cannot call remove. Therefore, the for-each loop is not usable for filtering. Similarly it is not usable for loops where you need to replace elements in a list or array as you traverse it.