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

时间:2016-05-12 22:26:05

标签: 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 个答案:

答案 0 :(得分:12)

当然可以分配,但它毫无意义。您只能将名为loadTask的引用归零(超出块的范围)。您无法更新阵列中的引用。 The For-Each Loop说(部分)

  

for-each循环隐藏迭代器,因此您无法调用remove。因此,for-each循环不可用于过滤。类似地,它不适用于需要在遍历时替换列表或数组中的元素的循环。