2024 Clojure状态调查!中分享您的想法。

欢迎!请查阅关于页面以获取更多关于如何工作的信息。

0投票
java.data

调用具有布尔属性且为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,尽管我不确定最佳外观是什么样的。

7个回答

0投票

评论由:iamdrowsy作出

可以编辑描述吗?
代码的最后一行显示的是预期行为而不是观察到的行为。

(if bool true false) => true

这是我们现在的解析结果。

0投票

评论由:iamdrowsy作出

可以编辑描述吗?
代码的最后一行显示的是预期行为而不是观察到的行为。

(if bool true false) => true

这是我们现在的解析结果。

0投票
by

评论由:jafingerhut发表

附带的路径 jdata-9-v1.patch 修改了从 data 转换为使用 clojure.core/boolean 转换 Java 布尔值

0投票
by

评论由:jafingerhut发表

附带的路径 jdata-9-v1.patch 修改了从 data 转换为使用 clojure.core/boolean 转换 Java 布尔值

0投票
by

评论由:bowbahdoe发表

我在转换一些丑陋生成的 WSDL 对象时遇到了这个问题。一些使用布尔值作为属性值,而另一些则只是 Object,因为没有在提供的模式中指定它们的类型。

0投票
by

评论由:bowbahdoe发表

我在转换一些丑陋生成的 WSDL 对象时遇到了这个问题。一些使用布尔值作为属性值,而另一些则只是 Object,因为没有在提供的模式中指定它们的类型。

0投票
by
参考:[https://clojure.atlassian.net/browse/JDATA-10](https://clojure.atlassian.net/browse/JDATA-10) (由 报告)
...