boolean listIsEmpty = myList.size()==0; 一旦myList的大小发生变化,listIsEmpty是否会立即更改为false ?这是一次性赋值吗?如果是后者,我可以有一个‘动态’布尔值'watches‘myList?吗
发布于 2013-07-03 21:47:42
答案很简单:不是也不是。
表达式求值一次,然后boolean中的结果将不会改变。
要拥有这样一个“动态”的boolean,你必须创建你自己的列表,并使用一个监听器来实现他的列表。
发布于 2013-07-03 21:52:35
不,因为这不是定义数学关系,而是定义一组指令。在指令执行之后,不能期望listIsEmpty自动更新。
要进行自动更新,请查看“侦听器模式”。
要以更合理的方式编写此条件,List有责任知道它是否为空,这就是它包含isEmpty()方法的原因。委托请求,而不是缓存此信息并对缓存执行操作。
if (myList.isEmpty()) {
... do stuff ...
}将防止缓存返回列表为空的陈旧视图。
发布于 2013-07-03 21:46:51
您的listIsEmpty不会更改,除非您再次检查此特定代码行
为了让您的布尔值在列表大小增加时立即进行更改,应该创建一个在添加或删除某些内容时检查列表大小的方法。
https://stackoverflow.com/questions/17449718
复制相似问题