Since varargs are essentially syntactic sugar for Object arrays, you can simply use "[Ljava.lang.Object;" as the type of constructor parameter.
Here is a sample code:
(ns t.vtest (:gen-class :implements [clojure.lang.IDeref] :init init :state state :constructors {["[Ljava.lang.Object;"] []})) ;; ^----------------------- ;; You should put "[Ljava.lang.Object;" for superclass varargs constructor here ;; I left it blank for the sake of working example (defn -init [args] (println "first element of args" (aget args 0) "total elements" (alength args)) [[] (into [] args)]) (defn -deref [this] (.state this))
and what does it look like in repl
user=> @(t.vtest. (into-array Object ["A" "B" 1 2])) first element of args A total elements 4 ["A" "B" 1 2]
spariev
source share