2
所以我有這樣的代碼:Java的「空」值永遠不會分配給我的Runnable
for(Runnable loadTask : mMeshLoadMap.values())
{
if(loadTask != null)
{
loadTask.run();
loadTask = null;
}
}
是永遠不會執行我的問題loadTask = null
聲明,Android Studio中說,分配給loadTask「值‘空’是永遠使用「...
另外,當我在該行設置斷點時,調試器永遠不會到達它。 它可以達到loadTask.run()
但不loadTask = null
而且我相信,loadTask.run()
不洙長
否我想要一個同步執行,我不想爲我的runnables啓動線程 – user2591935
那麼爲什麼你使用Runnable接口呢? 「Runnable接口應該由其實例旨在由線程執行的任何類來實現。」 – DavidS
我認爲編譯器可能實際上刪除了'loadTask = null;'語句,因爲它根本沒有做任何事情。我不確定JLS是否允許這樣做,但只要程序的可觀察效果不會改變,某些語言就允許編譯器執行任何操作。由於斷點的行不會以任何方式影響可觀察的效果,我不明白爲什麼編譯器不應該放棄它。 – 11684