2010-10-26 2 views

ответ

-1

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

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

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

def sayHello(name) { 
    greet(name) 
} 
+0

@rlovtang ответил на вопрос выше – sbglasius

2

Вы можете сделать это с помощью metaprogramming:

MyClass.metaClass.aliasMethod = MyClass.metaClass.originalMethod 
27

ли вы имеете в виду, как метод эталонного оператора .&?

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

и

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

def sayHello = this.&greet 

sayHello "Ronny" 

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

+0

Это, кажется, есть проблемы, когда подклассов и использование дженериков. У меня есть 'Pair ' и 'Foo extends Пара '. У меня есть 'T first', определяемый как свойство на' Pair'. В 'Foo', define' public getBar = this. & GetFirst'. Если я пытаюсь использовать как, 'Foo f = new Foo <> (1,10)', то 'f.getBar()' возвращает 'Closure '. Есть предположения? – Snekse

Смежные вопросы