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

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

0 投票
java.data

调用 from-java attaching to一个布尔属性为 false 的对象可能会返回 box布尔值,而这些布尔值并不是 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 应该意识到这个问题并进行修复。

这可以通过添加一个额外的方法来修复,该方法以正确的方式重构布尔值,尽管我不确定最佳的方式是什么。

7 个回答

0 投票

评论者: iamdrowsy

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

(if bool true false) => true

这是它现在的解析结果。

0 投票

评论者: iamdrowsy

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

(if bool true false) => true

这是它现在的解析结果。

0 投票

评论者:jafingerhut

附带的路径 jdata-9-v1.patch 将数据转换为使用 clojure.core/boolean 的 Java 布尔值

0 投票

评论者:jafingerhut

附带的路径 jdata-9-v1.patch 将数据转换为使用 clojure.core/boolean 的 Java 布尔值

0 投票

评论者:bowbahdoe

当转换一些难看的生成 WSDL 对象时,我会遇到这个问题。有些使用布尔型作为属性值,而有些只是对象,因为它们的类型在 schema 中未指定。

0 投票

评论者:bowbahdoe

当转换一些难看的生成 WSDL 对象时,我会遇到这个问题。有些使用布尔型作为属性值,而有些只是对象,因为它们的类型在 schema 中未指定。

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