调用 from-java attaching to一个布尔属性为 false 的对象可能会返回 box布尔值,而这些布尔值并不是 Boolean/FALSE。
这会导致一个等于 false 的布尔值,但在 if 的 true 路径上。
`
(def bool (:absolute (from-java (URI. ""))))
bool
=> false
(= bool false)
=> true
(if bool true false)
=> false
`
这导致非常令人困惑的行为。
由于 Clojure 不会改变 if 的行为(https://dev.clojure.org/jira/browse/CLJ-1718)并且我们不控制布尔值构造的细节,我认为 from-java 应该意识到这个问题并进行修复。
这可以通过添加一个额外的方法来修复,该方法以正确的方式重构布尔值,尽管我不确定最佳的方式是什么。