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

欢迎!请参阅关于页面以了解此工具的更多信息。

0
java.data

调用具有为false的布尔属性的对象的from-java可以返回不是Boolean/FALSE的boxed布尔值。
这导致一个等于假的布尔值,但如果为真的路径。

`
(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,该路径将from-data更改为使用clojure.core/boolean转换Java布尔值

0

评论由:jafingerhut

附加路径jdata-9-v1.patch,该路径将from-data更改为使用clojure.core/boolean转换Java布尔值

0

评论来自:bowbahdoe

转换一些令人讨厌生成的WSDL对象时,我遇到了这个问题。其中一些使用布尔值作为属性值,而另一些只是对象,因为它们在提供的架构中没有指定类型。

0

评论来自:bowbahdoe

转换一些令人讨厌生成的WSDL对象时,我遇到了这个问题。其中一些使用布尔值作为属性值,而另一些只是对象,因为它们在提供的架构中没有指定类型。

0
...