2009-08-31 88 views
38

如何根据Groovy中的字符串值调用方法?例如,而不是包含在字符串中的方法的调用名称

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

我想这样做obj.val其中val包含任何“一个”“两化”而不是一个case语句。

回答

78

Dynamic method invocation看起来像这样

obj."$val"() 
+5

提供的链接已经死了。这可能涉及以下主题: http://www.groovy-lang.org/metaprogramming.html#_dynamic_method_names – chrish 2015-09-11 17:06:55

相关问题