0

型付き引数を持つクラスのコンストラクターにアクセスするには、次のようにします。

> (.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.Datea も取り、long次のようなものを書きたいと思います

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

これはどのように行うことができますか?

4

1 に答える 1

1

すべてのプリミティブのオブジェクト ラッパーにはTYPE、これらの場合に使用できる static フィールドがあります。

だからあなたの特定の例のためにあなたが必要とする...

(.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"
于 2013-04-27T07:43:42.723 に答える