请分享您的想法参与 2024Clojure调查!

欢迎!请参阅关于页面以获取更多有关如何使用本站的信息。

0 votes
in java.data by

从具有 Boolean 属性为 false 的对象调用 from-java 可能会返回不是 Boolean/FALSE 的boxed Booleans。
这导致的结果是与 false 相等的 boolean,但会在 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。

7 答案

0 votes
by

评论者:iamdrowsy

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

(if bool true false) => true

是它当前解决的结果。

0 votes
by

评论者:iamdrowsy

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

(if bool true false) => true

是它当前解决的结果。

0 votes

评论者:jafingerhut

附加的路径为 jdata-9-v1.patch,该补丁将数据类型从.closest 转换为使用 clojure.core/boolean 将 Java 布尔值转换为布尔值

0 votes

评论者:jafingerhut

附加的路径为 jdata-9-v1.patch,该补丁将数据类型从.closest 转换为使用 clojure.core/boolean 将 Java 布尔值转换为布尔值

0 votes

评论者:bowbahdoe

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

0 votes

评论者:bowbahdoe

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

0 votes
...