2

地図に含まれているリストを使用するアプリがあります。私は自分のコードで単純な文字列比較のためにリストを使用しています(たとえば、value [0] == "something")。printlnはvalue[0]が「何か」であることを示しましたが、テストは常に失敗しました。クラスのvalue[0][through value [0] .getClass()]をさらにチェックすると、タイプ[C. 誰もがこれについての手がかりを持っています。リストはマップに保存されており、リストにアクセスするためにmap.eachを実行しています(違いが生じる場合)。これが私のコンソールでの私のコードとprintlnの出力です。

コード

println "it.value[0] = " + it.value[0]
println "it.value[1] = " + it.value[1]
println "it.value[2] = " + it.value[2]

println "it.value[0] class = "+ it.value[0].getClass()
println "it.value[1] class = "+ it.value[1].getClass()
println "it.value[2] class = "+ it.value[2].getClass()

出力

it.value[0] = abc
it.value[1] = def
it.value[2] = ghi

it.value[0] class = class [C
it.value[1] class = class [C
it.value[2] class = class [C
4

1 に答える 1

5

[Cプリミティブ文字配列(char[])のJavaフィールド記述子です。これらは、配列型のクラス名を調べるときに表示されます。

assert ("foo" as char[]).getClass().toString() == 'class [C'

それらがどのように構築されるかのルールは、フィールド記述子のJVM仕様セクションにあります。

于 2012-08-10T20:44:31.630 に答える