为它调用给定字符串的方法
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 语句中的字符串来确定要调用的方法。
假设我有一个名为 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 语句中的字符串来确定要调用的方法。