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

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

0
java.data

从 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,尽管我不确定最好的方式是什么。

7 个答案

0

评论:由 iamdrowsy 提出

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

(if bool true false) => true

目前这正是它的解析方式。

0

评论:由 iamdrowsy 提出

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

(if bool true false) => true

目前这正是它的解析方式。

0

评论由:jafingerhut 发布

附加路径 jdata-9-v1.patch,该路径将数据从 Boolean 转换为使用 clojure.core/boolean

0

评论由:jafingerhut 发布

附加路径 jdata-9-v1.patch,该路径将数据从 Boolean 转换为使用 clojure.core/boolean

0

评论由:bowbahdoe 发布

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

0

评论由:bowbahdoe 发布

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

0
参考资料:https://clojure.atlassian.net/browse/JDATA-10 (报告者: )
...