所以我有这段代码:
for(Runnable loadTask : mMeshLoadMap.values())
{
if(loadTask != null)
{
loadTask.run();
loadTask = null;
}
}
我的问题是loadTask = null
语句永远不会执行,Android Studio说“分配给loadTask的值”null“从未使用过”...
另外,当我在该行设置断点时,调试器永远不会到达它。
它可以达到loadTask.run()
但不能loadTask = null
而且我确信loadTask.run()
不会阻止太长时间
答案 0 :(得分:12)
当然可以分配,但它毫无意义。您只能将名为loadTask
的引用归零(超出块的范围)。您无法更新阵列中的引用。 The For-Each Loop说(部分)
for-each循环隐藏迭代器,因此您无法调用remove。因此,for-each循环不可用于过滤。类似地,它不适用于需要在遍历时替换列表或数组中的元素的循环。