我正在尝试将JSON文件转换为thrift二进制格式以节省存储和网络带宽。这与我的问题无关。但想要描述它的背景。
所以说,我有来自json的map
和Java类Event
(def m
{"a" 1
"b" 2})
java class
package my-test;
class Event {
public String a;
public String b;
public void setA(String a) { this.a = a; }
public void setB(String b) { this.b = b; }
}
如何获取值为Event
的{{1}}对象?
P.S。
尝试使用https://groups.google.com/forum/#!topic/clojure/YJNRnGXLr2I
中提到的m
call-method*
但(defn call-method* [obj m & args]
(eval `(. ~obj ~(symbol m) ~@args)))
提出来了。我不知道为什么。
Can't embed object in code, maybe print-dup not defined
P.S。
答案 0 :(得分:1)
clojure.java.data/to-java工作。
(import 'mytest.Event)
(use 'clojure.java.data)
(def m {"a" "1"})
(println (bean (to-java Event m)))