从 as-java 调用具有布尔属性为 false 的对象可以返回非 Boolean/FALSE 的boxed Booleans。
这导致一个等于 false 的布尔值,但在 if 的真路径上。
`
(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 应该了解这个问题并修复它。
可以通过添加一个额外的 Boolean 方法来修复它,该方法以正确的方式重建 Boolean,尽管我不确定最好的方式是什么。