微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

这是EL规范中定义的语言的行为:

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

  • 遗漏了其他规则
  • 如果A或B为布尔值,则将A和B都强制转换为布尔值,则应用运算符

将A强制转换为布尔

  • 如果A为null或“”,则返回false
  • 否则,如果A为布尔值,则返回A
  • 否则,
  • 否则,错误

因此,该字符串是强制转换为布尔通过Boolean.valueOf("error")返回false

解决方法

我有这种行为,我不太了解

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

输出

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。