首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当布尔值的条件发生变化时,它会发生变化吗?

当布尔值的条件发生变化时,它会发生变化吗?
EN

Stack Overflow用户
提问于 2013-07-03 21:46:06
回答 6查看 135关注 0票数 1
代码语言:javascript
复制
boolean listIsEmpty = myList.size()==0; 

一旦myList的大小发生变化,listIsEmpty是否会立即更改为false ?这是一次性赋值吗?如果是后者,我可以有一个‘动态’布尔值'watches‘myList?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-07-03 21:47:42

答案很简单:不是也不是。

表达式求值一次,然后boolean中的结果将不会改变。

要拥有这样一个“动态”的boolean,你必须创建你自己的列表,并使用一个监听器来实现他的列表。

票数 10
EN

Stack Overflow用户

发布于 2013-07-03 21:52:35

不,因为这不是定义数学关系,而是定义一组指令。在指令执行之后,不能期望listIsEmpty自动更新。

要进行自动更新,请查看“侦听器模式”。

要以更合理的方式编写此条件,List有责任知道它是否为空,这就是它包含isEmpty()方法的原因。委托请求,而不是缓存此信息并对缓存执行操作。

代码语言:javascript
复制
if (myList.isEmpty()) {
  ... do stuff ...
}

将防止缓存返回列表为空的陈旧视图。

票数 3
EN

Stack Overflow用户

发布于 2013-07-03 21:46:51

您的listIsEmpty不会更改,除非您再次检查此特定代码行

为了让您的布尔值在列表大小增加时立即进行更改,应该创建一个在添加或删除某些内容时检查列表大小的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17449718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档