如何解决比较表达式语言中的字符串和布尔值
这是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
- 怎么可以解释呢?
- 为了首先测试两个“事物”是否具有相同的类型,然后它们的值是否相同,编写测试的正确方法是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。