2010-10-26 23 views

Répondre

-1

Je n'ai pas vu ça dans Groovy et je n'y trouve rien.

Une façon d'y parvenir serait la méthode évidente mais médiocre.

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

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

@rlovtang a répondu à la question ci-dessus – sbglasius

2

Vous pouvez le faire en utilisant metaprogramming:

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

Voulez-vous dire que la méthode opérateur de référence .&?

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

et

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

def sayHello = this.&greet 

sayHello "Ronny" 

Il est mentionné à http://groovy.codehaus.org/Operators mais un exemple manque

+0

Cela semble avoir des problèmes lors de l'utilisation des médicaments génériques et le sous-classement. J'ai 'Paire ' et 'Foo étend Paire '. J'ai 'T first' défini comme une propriété sur' Pair'. Sur 'Foo', définissez' public getBar = this. & GetFirst'. Si j'essaie d'utiliser comme, 'Foo f = new Foo <> (1,10)', alors 'f.getBar()' retourne 'Fermeture '. Des pensées? – Snekse