以下電話:的Clojure ::(字符串/格式 「%S」 「A」)::失敗,並拋出ClassCastException
(String/format "%s" "a")
...拋出一個「ClassCastException異常java.lang.String中不能被強制轉換爲Clojure中的[Ljava.lang.Object]異常。
(String/format "%s" (cast Object "a"))
....產生相同的異常。
以下電話:的Clojure ::(字符串/格式 「%S」 「A」)::失敗,並拋出ClassCastException
(String/format "%s" "a")
...拋出一個「ClassCastException異常java.lang.String中不能被強制轉換爲Clojure中的[Ljava.lang.Object]異常。
(String/format "%s" (cast Object "a"))
....產生相同的異常。
因爲最後一個參數是陣列Object[]
代替Object
。
只需撥打(String/format "%s" (into-array ["a"]))
但更地道使用(format "Hello %s" "world")
+1使用clojure.core中的'format' – Alex
[L表示「我想要數組」,所以使用(String/format "%s" (to-array "a"))
。一般語法:(to-array ["a" 42 0.666]).
String.format
正在使用可變參數,它們是內部普通的Java數組。然後你需要將輸入參數轉換成一個數組,例如通過使用to-array
:在Java API
user=> (String/format "%s" (to-array "a"))
"a"
你需要使用'String.format'而不是[Clojure.core /格式(https://github.com/clojure任何理由/clojure/blob/master/src/clj/clojure/core.clj#L5162) - 它爲你包裝了「數組」嗎? '(格式「%s」「a」)' – Kyle
沒有理由特別使用String.format,只是很好奇...... –