调用具有布尔属性且为false的对象的from-java可能返回不是Boolean/FALSE的boxed布尔值。
这会导致一个等于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应该意识到这个问题并进行修复。
这可以通过添加一个额外的Boolean方法来修复,该方法以正确的方式重建Boolean,尽管我不确定最佳外观是什么样的。