加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java的toString()等于Clojure函数

发布时间:2020-12-14 17:43:39 所属栏目:Java 来源:网络整理
导读:我使用的一些 Java代码在我的Clojure函数对象上调用toString(),它返回像# ns $something something.something$something@7ce1eae7u0026gt; – 我想返回其他东西…可能有一个在函数中包含一些元数据的方式,以便他们的对象toString()返回呢? 解决方法 如果您
我使用的一些 Java代码在我的Clojure函数对象上调用toString(),它返回像#< ns $something something.something$something@7ce1eae7u0026gt;> – 我想返回其他东西…可能有一个在函数中包含一些元数据的方式,以便他们的对象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>

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读