5

次の呼び出し:

(String/format "%s" "a")

...「ClassCastExceptionjava.lang.StringをClojureの[Ljava.lang.Object」例外にキャストできません」をスローします。

(String/format "%s" (cast Object "a"))

....同じ例外が発生します。

4

3 に答える 3

14

Object[]Java APIの最後の引数は、ではなく配列であるためですObject

電話するだけ(String/format "%s" (into-array ["a"]))

しかし、使用するのはもっと慣用的です(format "Hello %s" "world")

于 2013-01-14T17:00:16.020 に答える
4

[Lは「配列が欲しい」という意味なので、を使用します(String/format "%s" (to-array "a"))。一般的な構文:(to-array ["a" 42 0.666]).

于 2013-01-14T16:53:50.447 に答える
4

String.format内部的にプレーンJava配列であるvarargsを使用しています。次に、入力パラメータを配列に変換する必要があります。たとえば、次のコマンドを使用しto-arrayます。

user=> (String/format "%s" (to-array "a"))
"a"
于 2013-01-14T16:55:25.547 に答える