比方說,我有java.lang.Character中像如何將Clojure中的字符LazySeq轉換爲字符串?
(\b \ \! \/ \b \ \% \1 \9 \/ \. \i \% \$ \i \space \^@)
的LazySeq我怎樣才能將它轉換爲字符串?我已經嘗試了明顯
(String. my-char-seq)
但它拋出
java.lang.IllegalArgumentException: No matching ctor found for class java.lang.String (NO_SOURCE_FILE:0)
[Thrown class clojure.lang.Compiler$CompilerException]
我想是因爲String構造需要一個原始的char []代替LazySeq。所以然後我嘗試了類似
(String. (into-array my-char-seq))
但它引發相同的異常。現在的問題是,插入數組返回一個java.lang.Character []而不是原型char []。這是令人沮喪的,因爲我居然產生這樣
(map #(char (Integer. %)) seq-of-ascii-ints)
我的字符序列基本上我有代表ASCII字符INTS的序列; 65 = A等你可以看到我明確地使用原始類型強制功能(char x)。
這意味着,我的地圖函數返回一個原始焦炭但Clojure的地圖功能總體上返回java.lang.Character中對象。