为它调用给定字符串的方法

Call method given string for it

假设我有一个名为 fooUp、fooDown、fooLeft、fooRight 的方法列表

有没有一种方法可以在 java 中编写某种代码,在给定方法名称字符串的情况下调用方法?

示例:

move(String str)
{
    call("foo" + str)
}

fooUp()
{
}

fooDown()
{
}

fooLeft()
{
}

fooRight()
{
}
mainFunction()
{
    move("Left")
}

这只是示例代码,但我想做这样的事情来调用一个方法,而不是重复方法中的代码。基本上更少的代码行/更清晰的代码。

是的,但是你必须使用反射。我将留给您研究反射以及如何使用它,但您的代码将如下所示:

YourClass.class.getMethod(yourObject, yourMethodString, yourArgumentTypes).execute(yourArguments);

它不会生成漂亮的代码,而且大多数时候,最好尽可能避免使用它。对于所提供的示例,更好的解决方案可能是使用 switch 语句中的字符串来确定要调用的方法。