私はchar[]
をString
に変換する方法をGroovyがGString
に変換する方法を見つけようとしています。GroovyはGString内のchar []をStringにどのように変換しますか?
例:
char[] pchar = ['p', 'a', 's', 's']
println "$pchar"
結果:私はそれがchar []に、toString()メソッドを使用すると仮定まず
パス(HTTP://groovy.codehaus .org/groovy-jdk /プリミティブ型/ char [] .html#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がこの変換をどのように行うのか誰にでも分かりますか?