所有都在标题中。 在php中我想要的例子:
function x($name){
echo 'hello'.$name;
}
$var = "x";
$$var('Joe');
返回“Joe”
我认为这个问题已经有很多答案,但我找不到合适的单词拼写它,所以我的搜索查询毫无意义......
由于
编辑:我正在使用带有播放框架的scala,我想根据用户代理调用不同的模板。 在游戏中,我使用以下方法调用模板:
Ok(views.html.templateFileName(many args))
我搜索了一种方法:
Ok(views.html.<Template name based on user agent>(many args))
答案 0 :(得分:1)
使用反射你可以这样做,但语法非常详细。
让我们声明一个名为Foo
的类,并声明一个名为bar
的方法,它接受一个Integer参数并返回Integer
通常我们调用类似foo.bar(1)
的方法,其中foo
是Foo
类的对象引用。
现在,我们可以使用bar
方法的名称来调用方法。
class Foo {
def bar(x: Integer): Int = x * x
}
val result = classOf[Foo].getDeclaredMethod("bar", classOf[Integer]).invoke(new Foo, new Integer(1))
REPL输出
@ class Foo {
def bar(x: Integer): Int = x * x
}
defined class Foo
@
@ val result = classOf[Foo].getDeclaredMethod("bar", classOf[Integer]).invoke(new Foo, new Integer(1))
result: Object = 1