[英]How do I set up a clojureScript project to use specs and test the clojure.core functions at runtime?
[英]How can I use clojure.core/bean recursively?
所以我认为clojure.core / bean非常接近我想要的,但是我正在使用一个嵌套bean的Java应用程序,这样我最终会得到这样的地图:
{:month-total 3835.0 :name "Jan's Meat Diner" :owners #<BarOwner[] [Lcom.fancypants.BarOwner;@1fb332d}
如何,我在Java对象上递归调用bean
,以便我可以让我想象中的BarOwner
对象自己作为地图发出:
{:month-total 3835.0 :name "Jan's Meat Diner" :owners { [:name "Jack"] [:name "Jill"] } }
我发现clojure/java.data
和from-java
可能比bean
更适合这种事情。
虽然它可能不是“如何递归使用bean”的理想答案,但在Clojure社区的网站下使用更多更丰富的contrib库确实解决了它。 特别
提供简单的递归bean解析,并且可以配置为在毛茸茸的情况下专门处理java类型。 我向其他想要使用bean
人推荐这个。
找出什么是豆而不是什么是非常棘手的。 这似乎可以解决bean中的bean和列表属性的问题。 可能你会想要更多的类添加到probably-bean?
功能,也许是对地图属性的一些支持。
(defn probably-bean? [o]
(and (not (coll? o))
((complement #{Class Long String clojure.lang.Keyword}) (class o))))
(defn transf [o]
(cond
(instance? java.util.List o) (into [] (map transf o))
(probably-bean? o) (into {} (seq (bean o)))
:else o))
(defn to-bean [o]
(clojure.walk/prewalk #(transf %) o))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.