char[]
GroovyがaをaString
内に変換する方法を理解しようとしていますGString
。
例:
char[] pchar = ['p', 'a', 's', 's']
println "$pchar"
結果:
パス
最初は、char [](http://groovy.codehaus.org/groovy-jdk/primitive-types/char []。html#toString())でtoString()メソッドを使用すると想定していました。しかし、次のコードを実行した結果は、別のことを示唆しているようです。
char[] pchar = ['p', 'a', 's', 's']
println "$pchar"
pchar.class.metaClass.toString = {->
"****"
}
println pchar.toString()
println "$pchar"
結果:
パス
****
パス
私はまたinvokeMethod()
、それを無駄に理解しようとするためにオーバーライドしようとしました:
char[] pchar = ['p', 'a', 's', 's']
println "$pchar"
pchar.class.metaClass.toString = {->
"****"
}
pchar.class.metaClass.invokeMethod = {String methodName, Object arguments ->
println("Method called on ${delegate.class}: $methodName, $arguments")
def metaMethod = delegate.metaClass.getMetaMethod(methodName)
return metaMethod.invoke(delegate, arguments)
}
println pchar.toString()
println "$pchar"
結果:
パス
クラス[C:toString、[]で呼び出されるメソッド
****
パス
Groovyがこの変換をどのように行うか知っている人はいますか?