2010-10-26 10 views

risposta

-1

Non ho visto questo in Groovy e non riesco a trovare nulla a riguardo.

Un modo per raggiungerlo sarebbe il modo ovvio ma povero.

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

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

@rlovtang ha risposto alla domanda di cui sopra – sbglasius

2

È possibile farlo usando metaprogramming:

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

Vuoi dire come il metodo operatore di riferimento .&?

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

e

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

def sayHello = this.&greet 

sayHello "Ronny" 

È menzionato in http://groovy.codehaus.org/Operators ma un esempio manca

+0

Questo sembra avere problemi quando sottoclasse e l'utilizzo di farmaci generici. Ho 'Coppia ' e 'Foo estende Coppia '. Ho 'T prima' definito come una proprietà su' Coppia'. Su 'Foo', definisci' public getBar = this. & GetFirst'. Se provo a usare come, 'Foo f = new Foo <> (1,10)', quindi 'f.getBar()' restituisce 'Chiusura '. qualche idea? – Snekse

Problemi correlati