groovy有像C#中的扩展方法吗?

时间:2016-04-30 12:06:36

标签: groovy extension-methods

我可以像在C#中一样将方法添加到最终类吗?

所以我可以这样做:

"Some text".myOwnFunction();

而不是:

MyStaticClass.myOwnFunction("Some text");

1 个答案:

答案 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

进入类路径时,您可以添加这些方法