在Java中动态调用静态函数



我有一个用例,在两个不同的类中有两个静态函数。现在我想动态地调用其中一个函数。

我知道如何动态创建类的实例(通过class.forName(((,但由于我处理的是静态函数,我不需要创建实例,所以有什么方法可以动态调用这个静态函数吗?

您真的不需要实例。以下是如何使用反射(=动态调用(用一个String和一个布尔参数调用方法xyz

try {
final Class<?> clazz = MyNiceClass.class;
final Method method = clazz.getMethod("xyz", String.class, boolean.class);
final Object result = method.invoke(null, "hello", true);
// do something with result
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
e.printStackTrace();
}

请注意使用null来代替实例。

最新更新