gpt4 book ai didi

java - Java 的 toString() 对 Clojure 函数的等价物

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:05:58 25 4
gpt4 key购买 nike

我正在使用的一些 Java 代码调用了 toString()在我的 Clojure 函数对象上,它返回类似于 #<ns$something something.something$something@7ce1eae7>> 的内容- 我想返回其他东西......大概有一种方法可以在函数中包含一些元数据,以便它们的对象'toString()返回那个?

最佳答案

如果你只是想让你的对象的 REPL 输出更有意义,你可以实现一个 defmethod print-method对于有问题的类(class)。

这是我最近写的一些代码的简化版本;这使得 Selenium-WebDriver WebDriver 对象的 REPL 打印输出更有意义:

(defmethod print-method WebDriver
[o w]
(print-simple
(str "#<" "Title: " (.getTitle o) ", "
"URL: " (.getCurrentUrl o) " >")
w))

这打印出来像 #<Title: A Title, URL: http://example.com >

在这里,WebDriver代表一个类;您可以通过实现 print-method 轻松地为内置的 Clojure 数据结构执行此操作对于适当的类(The Joy of Clojure 的特点是 print-method 代表 clojure.lang.PersistentQueue,默认情况下没有很好的表示)。 o上面是你正在处理的实际对象和w是一个作家(这些类型的打印功能需要)。

关于java - Java 的 toString() 对 Clojure 函数的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5306015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com