问题
Can I add to a method to a final class somehow like in C#?
So I could do something like:
"Some text".myOwnFunction();
Instead of:
MyStaticClass.myOwnFunction("Some text");
回答1:
You can either add it to all future string instances via the metaClass
String.metaClass.myOwnFunction = {-> delegate.length() }
assert "Tim".myOwnFunction() == 3
Or you can add it to a single instance
String a = "Tim"
a.metaClass.myOwnFunction = {-> delegate.length() }
assert a.myOwnFunction() == 3
Or you can add these methods when a jar is in the classpath at startup with extension modules
来源:https://stackoverflow.com/questions/36954719/does-groovy-have-extension-methods-like-in-c