この作品を作成するにはどうすればよいですか?ClojureのString []へのキャスト方法は?
user=> (Test/main (object-array ["hello" "world"]))
ClassCastException [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; user/eval21 (NO_SOURCE_FILE:21)
この作品を作成するにはどうすればよいですか?ClojureのString []へのキャスト方法は?
user=> (Test/main (object-array ["hello" "world"]))
ClassCastException [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; user/eval21 (NO_SOURCE_FILE:21)
object-array
はちょうどタイプObject[]
のアレイを作製するために使用されます。あなたはタイプを指定することができるようinto-array
を試してみてください(hereを参照)
> (into-array String ["Awesome","Sauce"])
> #<String[] [Ljava.lang.String;@1b86d76f>
(def v ["Hello" "World"])
(def a (to-array v))
EDIT:@Jeffが指摘したように、into-array
ではなくObject[]
の型付き配列(String[]
)を作成します。
これはまだ 'Object []'型のものです。元の質問は 'string []'型のものを作る方法だと思っていました –
@JeffFoster Foster:ええ、私は既に気づいていました。あなた自身の答えにアップアップしてください。 – ffriend
ありがとうございます!これはうまくいった。 –
空の配列を作成する必要がある場合(つまり、まだデータがない場合)は、 'make-array'を使用してください。 –