Как сделать метод псевдонима в Groovy? - PullRequest
14 голосов
/ 26 октября 2010

Я пытаюсь переопределить динамические методы домена в Groovy. Есть ли что-то похожее в псевдониме ruby ​​в groovy?

Ответы [ 3 ]

30 голосов
/ 26 октября 2010

Вы имеете в виду оператор ссылки метода .&?

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

и

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

def sayHello = this.&greet

sayHello "Ronny"

Он упоминается в http://groovy.codehaus.org/Operators, но пример отсутствует

3 голосов
/ 26 октября 2010

Вы можете сделать это, используя метапрограммирование :

MyClass.metaClass.aliasMethod = MyClass.metaClass.originalMethod
0 голосов
/ 26 октября 2010

Я не видел этого в Groovy и не могу найти в нем ничего.

Один из способов добиться этого - очевидный, но плохой.

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

def sayHello(name) {
    greet(name)
}
...