相当于 Clojure 函数的 Java toString()

2024-01-05

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


如果您只是想让对象的 REPL 打印输出更有意义,您可以实现defmethod print-method对于有问题的班级。

这是我最近编写的一些代码的简化版本;这使得 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 >

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相当于 Clojure 函数的 Java toString() 的相关文章

随机推荐