It's by design, see the section on ctor literals http://clojure.org/reader#toc1

"The elements in the vector part are passed unevaluated to the relevant
constructor."

Nicola

dennis zhuang writes:

> user=> #java.lang.String["hello world"]
> "hello world"
>
> user=> #java.lang.String[(byte-array) "utf8"]
> IllegalArgumentException No matching ctor found for class java.lang.String
>  clojure.lang.Reflector.invokeConstructor (Reflector.java:183)
>
> It seems that the CtorReader
> <https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/LispReader.java#L1187-1245>
> doesn't eval the arguments before invoking constructor,so it can't find a
> valid ctor.
>
> I am not sure whether it's a bug or an expected behaviour.
>
>
> --
> 庄晓丹
> Email:        killme2...@gmail.com xzhu...@avos.com
> Site:           http://fnil.net
> Twitter:      @killme2008

-- 
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/d/optout.

Reply via email to