非常に奇妙な動作を公開する小さなGroovyスクリプトを作成しました。誰かがそれを説明できますか?
// Creating a groovy map
def map = [:]
// Putting a value in
map["a"]="b"
// Render it without trouble
println map["a"]
// Putting another value in (yup, this one has THE name)
map["metaClass"]="c"
// Failing to render it
println map["metaClass"]
その場合の私の質問は非常に単純です:なぜ最後の命令が以下の例外をスローするのですか?
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'c' with class 'java.lang.String' to class 'groovy.lang.MetaClass'
at Script1.run(Script1.groovy:8)