Hello, I've been having a little problem when trying to generate java interop code and avoid reflection warnings. I have to generate a bunch of functions which delegate to java constructors, like this:
(defn mk-a [x y z] (A. x y z)) (defn mk-b [x y z] (B. x y z)) The main reason here is to be able to `apply` the functions to lists of arguments, as java constructors cannot be applied (AFAIK, would be great if I'm wrong - would solve a lot of my problems!). The problem is - java constructors are overloaded: A(String x, int y, int z) A(BigDecimal x, String y, int z) ... I was trying to generate such functions in my top-level form, like this: (doseq [[java-ctor fn-name] [['A. 'mk-a] [B'. 'mk-b]] (eval `(defn ~fn-name [x# y# z#] (cond (string? x#) (~java-ctor ^String x# y# z#) (string? y#) (~java-ctor x# ^String y# z#)))) Which still generates reflection warnings as type hints are read by the reader and applied to the forms read by the eval, not the result of the eval itself (please, correct me if I'm wrong here). I have a suspicion that the way I'm approaching the problem is wrong :) How should I go around solving this problem? -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.