比较表达式语言中的字符串和布尔值

2023-12-27

我有这种行为我不太理解

${someVar}
${someVar.class.name}      
${someVar == 'error'}

outputs

false
java.lang.Boolean
true
  1. 怎么解释呢?
  2. 为了首先测试两个“事物”是否具有相同的类型,然后测试它们的值是否相同,编写测试的正确方法是什么?

这是定义在语言中的行为EL规格 http://jcp.org/en/jsr/detail?id=245:

A {==,!=,eq,ne} B

  • 其他规则被忽略
  • 如果 A 或 B 是布尔值 将 A 和 B 强制转换为布尔值,则应用运算符

将 A 强制转换为布尔值

  • 如果 A 为 null 或“”,则返回 false
  • 否则,如果 A 是布尔值,则返回 A
  • 否则,如果 A 是一个 String,并且 Boolean.valueOf(A) 没有抛出异常,则返回它
  • 否则会报错

因此,字符串文字通过强制转换为布尔值Boolean.valueOf("error") which 返回假 http://download.oracle.com/javase/7/docs/api/java/lang/Boolean.html#valueOf%28java.lang.String%29.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较表达式语言中的字符串和布尔值 的相关文章

随机推荐

  • C/C++ 中的非线程安全文件 I/O

    在解决我们应用程序中的一些性能问题时 我发现 C 的stdio h函数 至少对于我们的供应商来说 C 的fstream类 是线程安全的 结果 每次我做一些简单的事情时fgetc RTL 必须获取锁 读取一个字节 然后释放锁 这对性能不利 在
  • 如何更改 UISearchBar +iPhone 中显示的取消按钮的默认文本

    我正在开发一个应用程序 我想更改搜索栏中搜索字符串的文本 我想更改搜索栏旁边显示的取消按钮的文本 在搜索栏中输入任何字符串之前 我们会将搜索字符串作为默认字符串 我想更改该字符串的文本 当我们单击该搜索栏时 我们会在搜索栏旁边看到一个取消按
  • Django:从日期时间字段查询时间

    在基于 Django 的 postgresql 数据库上 如何按时间过滤日期时间字段 如下所示 class Foo models Model start date models DateTimeField end date models D
  • Objective C 项目中的 Xcode 8.3 Swift 版本错误 (SWIFT_VERSION)

    我在纯 Objective C 项目中使用 Xcode 8 3 时遇到以下错误 我无法找到解决方案 我的构建设置中没有快速参数 而且我也无法在网上找到任何解决方案 有任何想法吗 几天前构建得很好 我能看到的唯一区别是 xcode 更新了 S
  • UnlockField 在 CakePHP 中不起作用

    只是想制作一个非常标准的用户编辑页面 密码 和 重新密码 开始隐藏 但可以通过单击 编辑密码 按钮将其打开 但是 我不断收到来自安全组件的 auth 黑洞错误 Per CakePHP 书 http book cakephp org 2 0
  • 如何创建Facebook风格的固定状态栏?

    我想通过 Web 表单创建固定状态栏以向用户显示各种状态 消息 通知 我可以使用固定 CSS 属性 但我想在 6 7 和 Firefox 中实现 以及所有浏览器 这是关于如何修复底部页面上的元素 栏的快速且简单的解决方案 jixedbar
  • Nashorn JS 对象对 java.util.Map 有效吗?

    我有java方法 void someMethod String str Map map 从 JS 调用这个方法 var map new Object map key1 val1 someMethod str map 例外 java lang
  • 我如何制作一个左/右侧圆润如圆的按钮

    我正在尝试制作一个侧面呈圆形的按钮 但是当我更改屏幕大小时 按钮侧面左侧呈圆形 不会保持纵横比 我认为 我想要每个尺寸的下一个切换按钮 如何为每个分辨率制作一个边角为圆角的 XML 我已阅读此内容 但这不是解决方案 如何让按钮的角变圆 ht
  • Tomcat应用部署监听器

    我想知道如何监听 Tomcat Web 应用程序部署 我希望每次从容器中取消部署应用程序或将应用程序部署到容器时都调用我的侦听器 我已经调查了一下并发现一些听众 即LifecycleListener可以通过 JMX 注册 但不幸的是 这个监
  • 在 iOS 中创建“流布局”类型布局的最佳/最简单方法是什么

    Q1 我有三个控件 UILabel UIButton and UILabel在一行中 我想以编程方式将它们一个接一个地排成一行 没有任何间隙 类似于Java Android Flowlayout 布局 因为每个控件上的文本长度会因用户操作而
  • 使用 Python 的 Mechanize 模块验证 br.submit()

    只是尝试使用 mechanize 登录网站 当我打印 br form 时 我可以看到我的凭据输入到我的表单中 但我不知道如何正确提交表格 我使用 br submit 并尝试通过打印 br title 来验证它是否已进入下一页 但出现的标题是
  • 使用 os.kill() 后如何找出子进程何时终止?

    我有一个 Python 程序 准确地说 是一个 Django 应用程序 它使用以下命令启动子进程subprocess Popen http docs python org 2 7 library subprocess html subpro
  • 如何在Windows上自动启动virtualenv环境

    谁能给我一些关于在 Windows 上自动启动 virtualenv 应用程序的建议 我有一个在 Gunicorn 上运行的小型 Flask 应用程序 运行良好 但是如何将其投入生产呢 我不想手动进入并 cd 进入目录并输入 activat
  • 如何排除图例中的系列 (Flex)

    在弹性图表中 我想画一些与特定系列相关的 参考线 之类的东西 因此 这些线不是独立的系列 不应在图例中显示 是否可以从图表图例中排除某些系列 谢谢 我详细阐述了 Luis B 的答案 使其动态地反映在折线图的数据提供者上 这样 图例仅显示图
  • 在 Java 中使用正则表达式查找重复模式

    我正在使用正则表达式来匹配以下字符串 String sample1 key value key value key value key value 正如您所看到的 key value 定期重复 唯一的分隔符是 管道 注意事项 键 gt 只是
  • 为什么“mvn verify”不运行我的集成测试?

    我有一个多模块项目 并且在根 pom 中定义了故障保护 如下所示
  • TargetName 属性无法在 Style Setter 上设置,那么它是如何设置的呢?

    过去一周我一直在探索 WPF 所以它对我来说仍然很陌生 我正在做的事情之一是简单的动画 在本例中是一个弹跳的笑脸 我的攻击计划是 做一个笑脸 我已经做到了这一点 计算一个简单对象的弹跳动画 我已经做到了这一点 抽象该动画 以便它可以在多个地
  • 类型错误:无法将 psycopg2.extensions.Binary 转义为二进制

    我尝试通过 sqlalchemy 将二进制文件存储到 postgresql 中 并且文件是从客户端上传的 对错误消息进行了一番谷歌 让我明白了这个源文件 https github com psycopg psycopg2 blob mast
  • memcpy 不会抛出异常吗?

    希望这个问题有一个简单的答案 因为这似乎是一个简单的问题 但是我无法在互联网上找到任何有关此问题的信息 在下面的代码片段中 Visual Studio 抱怨 delete bytes 行的代码无法访问 try memcpy bytes ot
  • 比较表达式语言中的字符串和布尔值

    我有这种行为我不太理解 someVar someVar class name someVar error outputs false java lang Boolean true 怎么解释呢 为了首先测试两个 事物 是否具有相同的类型 然后