2013-04-27 66 views
0

为了访问具有类型参数的类的构造函数,我可以这样做:如何获得clojure中包含原始类的构造函数?

> (.newInstance (.getConstructor java.util.Date (into-array java.lang.Class [])) 
      (object-array [])) 
;=> #inst "2013-04-27T04:00:55.498-00:00" 

> (.newInstance (.getConstructor java.util.Date (into-array java.lang.Class [java.lang.String])) 
      (object-array ["27 Apr 2013"])) 
;=> #inst "2013-04-26T14:00:00.000-00:00" 

java.util.Date也需要long作为一个参数,我希望写类似

> (.newInstance (.getConstructor java.util.Date (into-array java.lang.Class [long])) 
      (object-array [0])) 

如何才能做到这一点?

回答

1

原语的对象包装都有一个静态TYPE场可以在这些情况下使用。

所以你需要你的具体的例子...

(.newInstance 
    (.getConstructor java.util.Date 
    (into-array java.lang.Class [java.lang.Long/TYPE])) 
     (object-array [0])) 
;=> #inst "1970-01-01T00:00:00.000-00:00" 
相关问题