Right - not very different from the (class (byte-array 1)) that I came up with in the mean time... all not very clojuresque.
-FS. On Mar 24, 2010, at 3:03 PM, ataggart wrote: > For type-hinting #^"[B" works, but for obtaining and passing the class > to defmethod, the best I can come up with is (Class/forName "[B"). > > > > On Mar 24, 11:02 am, Frank Siebenlist <frank.siebenl...@gmail.com> > wrote: >> The following repl session shows my attempt to dispatch a multimethod on >> "type": >> >> ... >> user> (defmulti mm type) >> #'user/mm >> user> (type "a") >> java.lang.String >> user> (defmethod mm java.lang.String [s] (println "string")) >> #<MultiFn clojure.lang.mult...@41e3a0ec> >> user> (mm "a") >> string >> nil >> user> (type (.getBytes "a")) >> [B >> user> (defmethod mm [B [b] (println "bytes")) >> ; Evaluation aborted. >> user> (def ba-type (type (.getBytes "a"))) >> #'user/ba-type >> user> (defmethod mm ba-type [b] (println "bytes")) >> #<MultiFn clojure.lang.mult...@41e3a0ec> >> user> (mm (.getBytes "a")) >> bytes >> nil >> user> >> ... >> >> It works easily for the string, but for a native java byte array, type (or >> class) gives me back this "[B", which I'm unable to use as a dispatch value >> for the defmethod. >> I can, however, assign the value to a reference and us that to dispatch on >> successfully - but that feels like a hack. >> >> Is there a way to express the byte array type in a different way than "[B" >> that would work? >> >> Thanks, Frank. > > -- > 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 > > To unsubscribe from this group, send email to > clojure+unsubscribegooglegroups.com or reply to this email with the words > "REMOVE ME" as the subject. -- 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 To unsubscribe from this group, send email to clojure+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.