我可以像在C#中一样将方法添加到最终类吗?
所以我可以这样做:
"Some text".myOwnFunction();
而不是:
MyStaticClass.myOwnFunction("Some text");
答案 0 :(得分:16)
您可以通过metaClass
将其添加到以后的所有字符串实例中String.metaclass.myOwnFunction = {-> delegate.length() }
assert "Tim".myOwnFunction() == 3
或者您可以将其添加到单个实例
String a = "Tim"
a.metaclass.myOwnFunction = {-> delegate.length() }
assert a.myOwnFunction() == 3
或者,当jar在启动时使用extension modules
进入类路径时,您可以添加这些方法