如何通过反射使用类名,方法名和Object []参数来调用重载方法?

时间:2018-07-25 02:36:28

标签: java reflection

我输入要传递给它的类名,方法名和参数数组。我想调用该类的方法并为用户提供的参数运行它。 参数以Object [] args的形式给出 类名称和方法名称为String。

该类具有名称相同但参数不同的多个方法。根据Java语言规范中的规则,我需要能够分析参数数组并找出最适合的变体。

1 个答案:

答案 0 :(得分:1)

如果您不想自己进行查找和方法选择,那么java.beans.Expression可以帮助您:

String className = ...
String methodName = ...
Object[] arguments = ...

Object result = new Expression(Class.forName(className), methodName, arguments).getValue();

这仅适用于静态方法。
如果要调用实例方法,则还需要一个实例,在这种情况下,不需要类名。

相关问题