以下调用:
(String/format "%s" "a")
...在 Clojure 中引发“ClassCastException java.lang.String 无法转换为 [Ljava.lang.Object”异常。
(String/format "%s" (cast Object "a"))
....产生相同的异常。
以下调用:
(String/format "%s" "a")
...在 Clojure 中引发“ClassCastException java.lang.String 无法转换为 [Ljava.lang.Object”异常。
(String/format "%s" (cast Object "a"))
....产生相同的异常。
因为 java API 中的最后一个参数是数组Object[]
而不是Object
.
打电话(String/format "%s" (into-array ["a"]))
但更习惯使用(format "Hello %s" "world")
[L 表示“我想要数组”,所以使用(String/format "%s" (to-array "a"))
. 一般语法:(to-array ["a" 42 0.666]).
String.format
正在使用可变参数,它们是内部普通的 Java 数组。然后,您需要将输入参数转换为数组,例如使用to-array
:
user=> (String/format "%s" (to-array "a"))
"a"