使用反射调用静态方法
2022-08-31 05:47:36
我想调用静态的方法。我得到了类型的对象,但我无法创建该类的实例,也无法调用该方法。main
Class
static
main
我想调用静态的方法。我得到了类型的对象,但我无法创建该类的实例,也无法调用该方法。main
Class
static
main
// String.class here is the parameter type, that might not be the case with you
Method method = clazz.getMethod("methodName", String.class);
Object o = method.invoke(null, "whatever");
如果该方法是专用而不是 。并调用方法对象。getDeclaredMethod()
getMethod()
setAccessible(true)
Fromthe Javadoc of Method.invoke():
如果基础方法是静态的,则忽略指定的 obj 参数。它可能为空。
当您
Class klass = ...; Method m = klass.getDeclaredMethod(methodName, paramtypes); m.invoke(null, args)