Let s say I have a LazySeq of java.lang.Character like
( ! / \% 1 9 / . i \% $ i space ^@)
How can I convert this to a String? I ve tried the obvious
(String. my-char-seq)
but it throws
java.lang.IllegalArgumentException: No matching ctor found for class java.lang.String (NO_SOURCE_FILE:0)
[Thrown class clojure.lang.Compiler$CompilerException]
I think because the String constructor expects a primitive char[] instead of a LazySeq. So then I tried something like
(String. (into-array my-char-seq))
but it throws the same exception. The problem now is that into-array is returning a java.lang.Character[] instead of a primitive char[]. This is frustrating, because I actually generate my character sequence like this
(map #(char (Integer. %)) seq-of-ascii-ints)
Basically I have a seq of ints representing ASCII characters; 65 = A, etc. You can see I explicitly use the primitive type coercion function (char x).
What this means is that my map function is returning a primitive char but the Clojure map function overall is returning the java.lang.Character object.