调用具有假布尔属性的from-java可以对boxed Booleans返回非 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应该意识到这个问题并修复它。
可以通过添加一个额外的布尔方法来修复这个问题,该方法以正确的方式重构布尔值,尽管我不确定最好的方式是什么样的。