2009-08-31 10 views
38

Come posso chiamare un metodo basato sul valore di una stringa in Groovy? Per esempio, invece dinome di chiamata del metodo contenuto in una stringa

switch (val) { 
case "one": 
    Obj.one() 
    break 
case "two": 
    Obj.two() 
    break 
} 

mi piacerebbe fare qualcosa di simile obj.val dove val contiene sia "uno" o "due" invece di un'istruzione case.

risposta

78

Dynamic method invocation assomiglia a questo

obj."$val"() 
+5

Il collegamento fornito è morto. Questo potrebbe coprire l'argomento: http://www.groovy-lang.org/metaprogramming.html#_dynamic_method_names – chrish

Problemi correlati