Initially I got mad, blamed Groovy for making my life more difficult with its ridiculous automagical boxing. Then Josh pointed out that StringBuilder is actually a CharSequence. It's not a Groovy thing, I'm just dumb. Fire up your GroovyConsole and observe:
StringBuilder.metaClass.insert = {int arg0, Object arg1 ->
println "FOOO"
}
StringBuilder.metaClass.insert = {int arg0, String arg1 ->
println "BARR"
}
StringBuilder.metaClass.insert = {int arg0, CharSequence arg1 ->
println "I'M HERE!!!"
}
StringBuilder sb = new StringBuilder()
def foo = "ROGER"
def bar = "$foo"
sb.insert 0, bar
The result is "I'M HERE!!!". All I had to do was stub the right method.If you're experiencing String vs GString issues, like I thought I was, you may find this helpful.
No comments:
Post a Comment