2009-08-31 9 views
38

¿Cómo puedo llamar a un método basado en el valor de una cadena en Groovy? Por ejemplo en lugar denombre de la llamada del método contenido en una cadena

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

me gustaría hacer algo como obj.val donde val contiene "uno" o "dos" en lugar de una declaración de caso.

Respuesta

78

Dynamic method invocation se parece a esto

obj."$val"() 
+5

El enlace que está muerto. Éste podría cubrir el tema: http://www.groovy-lang.org/metaprogramming.html#_dynamic_method_names – chrish

Cuestiones relacionadas