如何在groovy中进行方法别名?

发布于 2024-09-28 21:12:09 字数 62 浏览 2 评论 0原文

我正在尝试重新定义 groovy 中域的动态方法。 groovy 中的 ruby​​ 中是否有类似的别名方法?

I am trying to redefine dynamic methods of a domain in groovy. Is there something similar alias method in ruby in groovy?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱的故事 2024-10-05 21:12:09

您的意思是像方法引用运算符 .& 吗?

def out = System.out.&println
out << "Hello"

def greet(name) {
    println "Hello $name"
}

def sayHello = this.&greet

sayHello "Ronny"

http://groovy.codehaus.org/Operators 中提到,但缺少示例

Do you mean like the method reference operator .& ?

def out = System.out.&println
out << "Hello"

and

def greet(name) {
    println "Hello $name"
}

def sayHello = this.&greet

sayHello "Ronny"

It is mentioned at http://groovy.codehaus.org/Operators but an example is missing

傾旎 2024-10-05 21:12:09

您可以使用元编程来做到这一点:

MyClass.metaClass.aliasMethod = MyClass.metaClass.originalMethod

You can do that using metaprogramming:

MyClass.metaClass.aliasMethod = MyClass.metaClass.originalMethod
心房敞 2024-10-05 21:12:09

除了 方法指针运算符 (.&< /code>),有等效的方法引用运算符::)< /strong> 用于 Groovy 版本 3.0.0 及更高版本,它与 Java 更兼容。 阅读我在这个其他帖子上的回答。

def foo(bar) {
    println "foo $bar"
}

def bar = this.&foo
bar "foo"

def out = System.out::println
out << "Hello"

输出

foo foo
Hello

Apart from the method pointer operator (.&), there's the equivalent method reference operator (::) for Groovy version 3.0.0 and above which is more compatible with Java. Read my answer on this other thread.

def foo(bar) {
    println "foo $bar"
}

def bar = this.&foo
bar "foo"

def out = System.out::println
out << "Hello"

Output

foo foo
Hello
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文