参见英文答案 >
Loop doesn’t see changed value without a print statement 1个
好吧,所以我有一个监视线程,它检查一个ArrayList大小,并在该大小超过一定数量后执行某些操作.我现在遇到的问题是大小值永远不会更新,除非我的循环中有一个print语句.这是一些代码,以显示我到底发生了什么.
while(working) {
// Get size function just returns the size of my list in my t class
int size = t.getSize();
if (size >= 10) {
//DO STUFF
}
}
以上代码不起作用.它永远不会进入if语句.但是,这很好用:
while(working) {
// Get size function just returns the size of my list in my t class
int size = t.getSize();
System.out.println(size);
if (size >= 10) {
//DO STUFF
}
}
编辑:getSize()代码:
public ArrayList myQueue = new ArrayList();
public int getSize() {
return myQueue.size();
}
注意:我有另一个运行的线程正在更新并添加到我的t类中的列表中.
有帮助吗?当我尝试在控制台中调试时,让它吐出数字真的很烦人.