2013-07-30 34 views

回答

10

拆除show變得更「簡單」,使可用的重複功能的不同部分,由斯圖爾特萬洛耶在talk討論他給clojure簡單。

生成的代碼使用的clojure.reflect/reflectclojure.pprint/print-table 和標準的Clojure filter

(require 'clojure.reflect) 
(require 'clojure.pprint) 

(->> (clojure.reflect/reflect java.lang.String) 
    :members 
    (filter #(.startsWith (str (:name %)) "last")) 
    (clojure.pprint/print-table)) 
+0

一個約'show'的是,它的工作實例上,以及對類型(見HTTPS很酷的事情:/ /stackoverflow.com/questions/5821286)。您是否知道任何示例(例如,在Clojuredoc或博客中)展示如何印刷Java類實例的實例變量的值? clojure.repl命名空間似乎沒有足夠的(https://clojure.github.io/clojure/clojure.repl-api.html) –

+0

clojure.reflect/reflect上面是建立在Java反射API之上的它應該做你需要的。拆分「秀」的一部分是它做得太多了。反射功能在clojure.reflect命名空間(而不是repl-api)中可用。用字符串實例而不是類型 - (clojure.reflect/reflect「字符串實例」)來嘗試上面的例子 –

6

我是指你的Where Did Clojure.Contrib Go文件,該文件說,大約clojure.contrib.repl-utils的:

遷移到clojure.repl和clojure.java.javadoc。顯示與clojure.reflect/reflect相似的功能。

的clojure.reflect API文檔是here,並且clojuredocs.org實例是here